Hibernate @ManyToOne only works with CascadeType.ALL

前端 未结 2 1522
心在旅途
心在旅途 2020-12-16 20:57

I am using Hibernate 3.3.1 and i would like to create a relation between persons and an assigned company. They should be loosely coupled, but i would like to arrange to crea

相关标签:
2条回答
  • 2020-12-16 21:20

    Probably you need to enable Hibernate custom @Cascade when using non-JPA Session.saveOrUpdate() method.
    Add @Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE) or use Session.persist()

    0 讨论(0)
  • 2020-12-16 21:22

    i don't feel the mappings are right

    class Company
    {
    @Id
    Long companyId;
    String name;
    @OneToMany(fetch = FetchType.LAZY,mappedBy="company"
    @Cascade({CascadeType.SAVE_UPDATE})
    List<Person> persons;
    }
    
    class Person
    {
    @Id
    Long personId;
    String name;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="company_id")
    Company company;
    }
    

    Set like this now

    Company c=new Company();
    List<Person> plist=new ArrayList<>();
    Person p=new Person();
    p.setCompany(c);
    plist.add(p);
    c.setPersons(plist);
    dao.save(c);    
    
    0 讨论(0)
提交回复
热议问题