Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
双指令关系创建双对象(HIbernate)_Hibernate_Jpa_Jakarta Ee - Fatal编程技术网

双指令关系创建双对象(HIbernate)

双指令关系创建双对象(HIbernate),hibernate,jpa,jakarta-ee,Hibernate,Jpa,Jakarta Ee,首先,这不是一个重复的问题。所以,这是我的问题。我有一个双种族的关系。这是我的两个实体。第一个是Company.java: public class Company implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; .... @OneToMany(fetc

首先,这不是一个重复的问题。所以,这是我的问题。我有一个双种族的关系。这是我的两个实体。第一个是Company.java:

public class Company implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
....
@OneToMany(fetch = FetchType.LAZY, mappedBy="company",cascade = {CascadeType.MERGE, CascadeType.REFRESH}, orphanRemoval = true)
private List<Contract> contracts;
public class Contract implements Serializable{

private static final long serialVersionUID = 1L;    
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.REFRESH}, fetch=FetchType.LAZY)
private Company company;
}


因此,我的问题是,当我创建一个合同并将其添加到我的合同中时,我认为在我的数据库表中,我的表合同中有两个元素,我只希望得到一个合同的元素。有可能吗,谢谢。

这是不是复制品,由其他人来定义,而不是由你来定义。如果您对持久化的内容有问题,为什么不发布导致数据库中出现此类对象的实际持久化代码?!您是否为您添加的合同设置了公司?你能把这两行持久化吗?你能在公司添加合同的地方发布代码和持久化代码吗?@osama我认为创建两个对象是正常的,因为我在代码company.getContracts().add(relatedContract)中创建了这两个对象,relatedContract是一个新合同。但我想做的是这个公司的.getContracts().add(existingContract),然后我得到了一个错误,告诉我:分离对象。如果我理解得很好,这与主题问题不同,对吗?所以回到我的评论#1<代码>发布导致数据库中此类对象的实际持久性代码。。。在你的问题中