我需要从playframework Model类扩展delete()
动作,我必须使用EntityManager和nativeQuery。我还没有弄清楚playframework究竟在会话中做了什么(我猜它确实如此),但似乎这个查询在super.delete()
之前没有受到影响。有没有人对此有所了解?
@Entity
public class MyModel extends Model {
...
@Override
public Tag delete() {
final Query deleteLinksQuery = Tag.em().createNativeQuery("some query here");
int res = deleteLinksQuery.executeUpdate();
// here res=1 i.e. it works but it seems doesn't save to db
return super.delete();
}
}
我在更新执行查询后尝试执行MyModel.em().flush();
,但它没有工作。
答案 0 :(得分:1)
我们需要查看查询才能知道它可能失败的原因。代码似乎是正确的,所以我会把它归咎于错误的JQL。
那就是说,我建议在方法上使用@PreRemove和@PostRemove注释来启动查询。它使代码更清晰。