java - 使用 JPA 2 持久性处理数据异常

标签 java hibernate jpa-2.0

我使用 hibernate 作为 JPA 持久性提供程序,但在文档中找不到任何处理数据异常的方法。

我有两个实体:

@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 配置为在遇到此数据时不会爆炸吗?

最佳答案

您可以在您的属性上使用 @NotFound(IGNORE) 注释。 Javadoc here

关于java - 使用 JPA 2 持久性处理数据异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858004/

相关文章:

java - 更改类加载器

java - 在 Hibernate/JPA 中,字段名称不能以单个字母驼峰式大小写开头吗?

java - Spring PROPAGATION_REQUIRES_NEW,它是如何挂起的?同一线程下有多少事务正在进行/暂停?

java - 一对多:让 Hibernate 选择引用的 id 而不是加入它

java - Hibernate 条件查询。创建子标准后,我可以返回原始标准吗?

java - JPQL 查询不使用 "NOT IN"命令

java - 使用 JPA2 Criteria API 查询字符串子集

java - 如何根据另一个元素参数更改数组列表中特定元素的特定参数

java - 我可以将扩展类中的变量类型强制转换为 Java 中的子类型吗?

Java 图形在计时器中不工作