【发布时间】:2018-07-11 20:08:26
【问题描述】:
我用表地址的外键创建了表 Employee。当我保存新员工时,我想检查表地址中是否已经存在该地址,如果存在,则不要在地址中创建新行,而是找到正确的并将其保存在员工中。
我用 SQL 做了这个类似的过程,但是用 hibernate 做这个更简单吗?使用此代码,我总是有新行。我试图进行查询以提取但我不知道如何使用此地址 ID 分配给员工,而不是在地址中插入新行。图片上是桌子,所以很明显我想要什么。 table look , link to project
Employee employee = new Employee();
Address address = new Address();
City city = new City();
/* Query query = session.createQuery("select a.address_id from Address
a where a.street = :addName").setParameter("addName" ,
JFClasss.insStreet.getText());
List list = query.list();
if(!list.isEmpty()){
addid = (int) list.get(0);
address.setAddressId(addid);
// save = 1;
} */
address.setStreet(jf.insStreet.getText());
city.setCityName(jf.insStreet.getText());
employee.setName(jf.insName.getText());
employee.setSurname(jf.insSurname.getText());
employee.setAge(age);
employee.setAddress(address);
employee.setCity(city);
session.saveOrUpdate(city);
session.save(address);
session.save(employee);
【问题讨论】: