我正在使用hibernate作为JPA Persistence提供程序,并且无法找到任何方法来处理文档中的数据异常。
我有两个实体:
@Entity
public class Item {
@Id
@GeneratedValue
Long id;
@ManyToOne
@JoinColumn(name="node_id")
Node node;
.. snip ..
}
@Entity
public class Node {
@Id
@GeneratedValue
Long id;
@OneToMany
@JoinColumn(name="node_id")
List<Item> items;
.. snip ..
}
在我的数据库中,我有一个数据异常,其中有一个项目行,node_id = X
但没有id
X
的节点。
由于恼人的,无关的原因,我无法清理这些数据。
有什么方法可以让JPA在碰到这些数据时不会爆炸?
答案 0 :(得分:1)
您可以在属性上使用@NotFound(IGNORE)注释。 Javadoc here
答案 1 :(得分:0)
嗯,你不能扼杀JPA的例外。但是,您可以创建一个侦听实体保存/更新的实体侦听器,并缓存并处理可能来自它们的任何异常:
http://docs.oracle.com/cd/B31017_01/web.1013/b28221/cmp30cfg015.htm