Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.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
Java hibernate中具有外键的一对多(例外:具有相同标识符值的不同对象已与会话关联) 我有两个实体,Person和Address。 公共阶层人士{ 私人长人形; 私有字符串名; 私有字符串lastName; @OneToMany(mappedBy=“person”) @级联(级联类型。保存\更新) 私有列表地址=新的ArrayList(); ------------------- } 公共课堂演讲{ 私有长地址ID; 私家弦街;; 私有字符串zipcode; @许多酮 @JoinColumn(name=“GRANT\u ID”) 私人; ------------------- } SessionFactory SessionFactory=新配置().configure().buildSessionFactory(); Session Session=sessionFactory.openSession(); session.beginTransaction(); 会话。保存(个人); session.getTransaction().commit();_Java_Spring_Hibernate - Fatal编程技术网

Java hibernate中具有外键的一对多(例外:具有相同标识符值的不同对象已与会话关联) 我有两个实体,Person和Address。 公共阶层人士{ 私人长人形; 私有字符串名; 私有字符串lastName; @OneToMany(mappedBy=“person”) @级联(级联类型。保存\更新) 私有列表地址=新的ArrayList(); ------------------- } 公共课堂演讲{ 私有长地址ID; 私家弦街;; 私有字符串zipcode; @许多酮 @JoinColumn(name=“GRANT\u ID”) 私人; ------------------- } SessionFactory SessionFactory=新配置().configure().buildSessionFactory(); Session Session=sessionFactory.openSession(); session.beginTransaction(); 会话。保存(个人); session.getTransaction().commit();

Java hibernate中具有外键的一对多(例外:具有相同标识符值的不同对象已与会话关联) 我有两个实体,Person和Address。 公共阶层人士{ 私人长人形; 私有字符串名; 私有字符串lastName; @OneToMany(mappedBy=“person”) @级联(级联类型。保存\更新) 私有列表地址=新的ArrayList(); ------------------- } 公共课堂演讲{ 私有长地址ID; 私家弦街;; 私有字符串zipcode; @许多酮 @JoinColumn(name=“GRANT\u ID”) 私人; ------------------- } SessionFactory SessionFactory=新配置().configure().buildSessionFactory(); Session Session=sessionFactory.openSession(); session.beginTransaction(); 会话。保存(个人); session.getTransaction().commit();,java,spring,hibernate,Java,Spring,Hibernate,这些值是从ui为这些实体设置的,并将使用hibernate保存在DAO中。当我提交表单并尝试保存对象时,出现以下错误。 “org.hibernate.unUniqueObjectException:具有相同标识符值的不同对象已与会话关联”。 在谷歌搜索了很多关于这个问题的信息后,我无法解决这个问题。如果我使用merge而不是save/saveorUpdate,它会将记录插入Person,而只将一条记录插入Address,即使我有两个地址。在过去的三天里,我一直在挣扎,我无法解决这个问题。 我正在

这些值是从ui为这些实体设置的,并将使用hibernate保存在DAO中。当我提交表单并尝试保存对象时,出现以下错误。 “org.hibernate.unUniqueObjectException:具有相同标识符值的不同对象已与会话关联”。 在谷歌搜索了很多关于这个问题的信息后,我无法解决这个问题。如果我使用merge而不是save/saveorUpdate,它会将记录插入Person,而只将一条记录插入Address,即使我有两个地址。在过去的三天里,我一直在挣扎,我无法解决这个问题。
我正在使用单独的序列为这两个表生成pks。有人能为我提供解决此问题的方法吗?提前感谢。

您能否在提交表单时显示您的dao和客户端代码调用此方法@RequestMapping(value=“/savePerson”,method=RequestMethod.POST)公共字符串savePerson(@ModelAttribute(“person”)person){PersonDAO.savePerson(person);是我的控制器方法。在我的DAO中,如上所述获取会话并保存人员。请参阅此项对于此要求不有用。谢谢。Hibernate正在尝试选择列表中的第一个实体。它显示在Hibernate查询中。
I have two Entities, Person and Address. 

public class Person{

private long personId;
private String firstName;
private String lastName;
@OneToMany(mappedBy="person")
@Cascade(CascadeType.SAVE_UPDATE)
private List<Address> addresses = new ArrayList<Address>();
-------------------

}

public class Address{

private long addressId;
private String street;
private String zipcode;
@ManyToOne
@JoinColumn(name="GRANT_ID")
private Person person;
-------------------

}

SessionFactory sessionFactory= new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(person);
session.getTransaction().commit();