2

我正在尝试创建一个实体 B,该实体 B 与另一个实体 A 的 Join 列具有另一个实体的主键。当我使用不在实体 A 中的值创建实体 B 时,我没有看到异常。这不应该由 JPA 自动处理吗?

实体的代码片段:

 @Entity
    public class A{

        @Id
        @Column(name="ORIGIN_ID")
        private long id;
        ...

        @OneToMany(mappedBy="aBean",cascade = CascadeType.PERSIST)
        private List<B> bList;
    }


    @Entity
    public class B{
        @Id
        private long id;
        ...

        @ManyToOne(cascade=CascadeType.MERGE)
        @JoinColumn(name="ORIGIN_ID")
        private A aBean;
    }
4

1 回答 1

0

你指的是关系管理。我记得 JPA 规范中没有任何内容需要在那里抛出异常(因为用户传递了不一致的关系信息)。所有 JPA 实现都有自己的情况处理。有些人只会坚持关系所有者方面的内容。其他人将根据首先遇到的情况坚持下去。其他人具有可选处理,可以打开以检测此类事情并将其标记给用户

最简单的建议是在使用双向关系时,确保双方是一致的。

于 2014-09-22T07:48:18.433 回答