JPA:从技术密钥中自动刷新实体



我在我的一个entites中有一个单向映射的@Onetomany关系。假设这样的事情(不完整 - 只是为了想法):

@Entity
public class Contract {
  @OneToMany
  @JoinColumn(name="...", referencedColumnName="...")
  Product product;

现在,作为第一步,我从后端加载了所有产品,然后我从其他界面加载所有合同。后一个界面仅超过了产品的技术键。目前,我加载了所有产品,将它们作为钥匙和对象放在地图中,然后在加载时将它们放入新合同中。真的要走了吗?我尝试了一段时间,将产品等于技术密钥,并希望JPA在合同实体合并时可以解决问题 - 但这并不成功。

欢迎任何提示。预先感谢

正如我从您的示例中了解的那样,您有一个合同实体,它引用了几个产品实体,并且您想知道如何在JPA-Java中反映这一点。如果是这样,那么您只需要将产品添加到合同的产品列表中即可。请记住,JPA将表转换为对象,因此任何关系都将采用班级成员的形式。如果关系是多个的,则类成员将是一个集合(例如,列表)。然后,您可以:

- 创建新的产品集合,添加产品,然后将合同的产品收藏在此新系列中,如果合同没有产品,则是一种很好的方法:

List<Products> listProducts = new ArrayList<Products>();
//add the products
contract.setProductList(listProducts);

- 回复合同产品的收集,然后添加所需的产品,如果合同具有以前的产品:

contract.getProductList().add(product);

无论如何,您都需要进行更改。请记住,在这种情况下,您需要将父母实体持续存在。

最新更新