【问题标题】:Creation of entity in JPA which has a joinColumn在 JPA 中创建具有 joinColumn 的实体
【发布时间】:2014-09-22 07:36:13
【问题描述】:

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

实体的代码sn-ps:

 @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;
    }

【问题讨论】:

  • 请粘贴代码 sn-p 说明您如何“创建”实体 B。
  • 为了创建,使用传递的 id,我得到实体 A 的 bean,然后将 bean 设置为实体 B 的 aBean 对象。现在我在将 bean 对象设置为解决上述问题

标签: java jpa one-to-many many-to-one joincolumn


【解决方案1】:

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

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

【讨论】:

  • 谢谢。这个场景是一些负面场景测试的一部分。只是想检查是否有一些解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 2013-10-13
  • 1970-01-01
  • 2022-01-16
  • 2018-04-13
  • 2019-07-08
  • 1970-01-01
相关资源
最近更新 更多