【发布时间】:2018-09-22 04:52:19
【问题描述】:
我将分离的实体传递给持久化:模型。我使用@OneToMany 映射时的公司。我尝试了不同的方法,但结果相同。 我添加了 @OneToMany 和 CascadeTypes Persist 等等。删除那些。 设置经理并尝试坚持,评论设置经理并尝试坚持。他们都没有工作。
公司:
@Entity
public class Company {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private int id;
private int age;
@ElementCollection
private Set<Manager> managers;
private String name;
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public void setManagers(Set<Manager> managers) {
this.managers = managers;
}
public Set<Manager> getManager() {
return managers;
}
}
经理
@Entity
public class Manager {
@Id
@GeneratedValue
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
测试
public class Test {
public static void main(String args[]) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpatestproject");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
// Manager m1 = new Manager();
// m1.setName("abc");
// Manager m2 = new Manager();
// m2.setName("def");
// Set<Manager> managers = new HashSet();
// managers.add(m1);
// managers.add(m2);
//
Company company = new Company();
company.setId(1);
company.setName("LTE");
// company.setManagers(managers);
tx.begin();
em.persist(company);
tx.commit();
System.out.println("Done");
}
}
【问题讨论】: