ดำเนินการวิธีการก่อนที่จะบันทึกโมเดลใน Play Framework 1.x

ฉันจะดำเนินการวิธีการก่อนที่จะบันทึกโมเดลได้อย่างไร

เช่นการแฮชรหัสผ่านในรูปแบบผู้ใช้

ดูเหมือนว่าไม่มีคำอธิบายประกอบ @Before สำหรับโมเดลต่างๆ

ฉันใช้ PlayFramework 1.2.x

PS : ฉันวางแผนที่จะใช้กับโมดูล CRUD


person Gautam    schedule 20.05.2012    source แหล่งที่มา
comment
คุณกำลังมองหาการโทรกลับ @PrePersist ของ JPA หรือไม่?   -  person Ahamed Mustafa M    schedule 20.05.2012
comment
@AhamedMustafaM: ใช่ แต่ฉันไม่ต้องการอะไรที่ซับซ้อนขนาดนั้น เพียงดำเนินการตามวิธีการแล้วบันทึก   -  person Gautam    schedule 20.05.2012


คำตอบ (1)


ตรวจสอบคอลเลกชันของคำอธิบายประกอบ Pre* ใน JPA ตัวอย่างเช่น PrePersist และ PreUpdate

ในโมเดลของคุณ เพียงติดคำอธิบายประกอบที่คุณต้องการลงบนวิธีการที่คุณต้องการเรียกใช้

@PrePersist
public void hashPassword(){
    // do stuff
}

ตัวเลือกอื่นอาจเป็น เพื่อแทนที่เมธอด save() สำหรับ รุ่นใดรุ่นหนึ่ง แต่ฉันจะไม่ทำอย่างนั้นเว้นแต่จะจำเป็นจริงๆ ฉันจะยึดติดกับ JPA API หากพวกเขาเสนอวิธีแก้ปัญหา แต่นั่นเป็นเพียงความคิดเห็นของฉัน

person Jeremy    schedule 20.05.2012
comment
จริงๆ แล้วฉันได้ค้นคว้าบางอย่างหลังจากที่คุณพูดถึงการเอาชนะ save() เนื่องจากปรากฎว่าการเอาชนะ save() ไม่ใช่แนวคิดที่แย่นักเพราะมันเรียก _save() ซึ่งมีตรรกะทางธุรกิจที่แท้จริง โปรดอ้างอิง stackoverflow.com/a/5419083/492561 - person Gautam; 20.05.2012
comment
ดี. ฉันจะเพิ่มลิงก์ไปยังคำตอบของฉันเพื่อความสมบูรณ์ - person Jeremy; 20.05.2012