【发布时间】:2018-05-08 08:47:07
【问题描述】:
我想实现在某些模型保存后在表中插入一行的行为。简而言之,我目前的解决方案是:(这只是我的代码示例,因此请不要评论数据库或描述符模型的正确性)。
- 我有一个监听器,用于更新/插入实体上的插入行为行
DescriptionListener.java
public class DescriptionListener {
@PostPersist
public void onPostPersist(Object entity) {
Description description = new Description("INSERT");
description.save();
}
@PostUpdate
public void onPostUpdate(Object entity) {
Description description = new Description("UPDATE");
description.save();
}
}
- 我有一个监听器的数据库模型
Description.java
@Entity
@Table(name="DESCRIPTION")
public class Description extends GenericModel {
@Id
@GeneratedValue
@Column(name="ID")
public Long id;
@Column(name="INFO")
public String info;
public Description(String info) {
this.info = info;
}
}
- 我在我想用
@EntityListener注解的类上使用实体监听器@Entity @EntityListeners(DescriptionListener .class) @Table(name="TABLE") public class Table extends GenericModel { ... }但是在我测试了功能后,我在文档中读到了这个词:
回调方法不得调用 EntityManager 或 Query 方法!
现在我认为save() 方法是Query 方法,所以我不能在回调函数中使用(但在我的情况下它的工作原理相同),我的问题是:
如何实现相同类型的行为并在保存另一个模型后保存一个模型?
在 Play 中有什么可以帮助我的吗?
【问题讨论】:
标签: java hibernate events callback playframework-1.x