【问题标题】:hibernate if data exist save proper foreign key如果数据存在则休眠保存正确的外键
【发布时间】: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);     

【问题讨论】:

    标签: java mysql hibernate


    【解决方案1】:

    已解决,我可以取出整个对象并使用 saveOrUpdate 再次保存。

    Employee employee = new Employee();
    Address 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 = (Address) session.get(Address.class, addid);
       // address.setAddressId(addid);
       // save = 1;
    
    } 
    else{
          address = new Address();
          address.setStreet(jf.insStreet.getText());
      }
     .
     .
     .
      session.saveOrUpdate(address);
    

    【讨论】:

      猜你喜欢
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      相关资源
      最近更新 更多