@可嵌入@manytone Hibernate和CascadeType.ALL
我试图用@EmbeddedId实现复合标识符。运行下面的主方法时,dummy1表插入了数据。dummy3表中没有插入任何记录。在dummy3表中插入数据需要进行哪些更改?。请查找以下课程以供参考 Dummy1.java@可嵌入@manytone Hibernate和CascadeType.ALL,hibernate,Hibernate,我试图用@EmbeddedId实现复合标识符。运行下面的主方法时,dummy1表插入了数据。dummy3表中没有插入任何记录。在dummy3表中插入数据需要进行哪些更改?。请查找以下课程以供参考 Dummy1.java @Entity(name="Dummy1") public class Dummy1 { private String name; @EmbeddedId private Dummy2 dummy2; //Getters and sette
@Entity(name="Dummy1")
public class Dummy1 {
private String name;
@EmbeddedId
private Dummy2 dummy2;
//Getters and setters are omitted for brevity
}
Dummy2.java
@Embeddable
public class Dummy2 implements Serializable {
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="id")
private Dummy3 d3;
@Column(name="State")
private String state;
@Column(name="city")
private String city;
//Getters and setters are omitted for brevity
}
Dummy3.java
@Entity(name="Dummy3")
public class Dummy3 {
@Id
private int id;
private String name;
private String lastName;
//Getters and setters are omitted for brevity
}
Main.java
public static void main(String[] args) {
StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure("/resources/hibernate.cfg.xml")
.build();
factory = new MetadataSources(registry)
.buildMetadata()
.buildSessionFactory();
session=factory.openSession();
session.getTransaction().begin();
Dummy1 a=new Dummy1();
a.setName("aaaa");
Dummy2 b=new Dummy2();
b.setCity("aaa");
b.setState("bbb");
Dummy3 c=new Dummy3();
c.setId(1);
c.setName("ddd");
c.setLastName("dddd");
b.setD3(c);
a.setDummy2(b);
session.persist(a);
session.getTransaction().commit();
session.close();
}
您的用例是什么?通过创建具有外键的主键,您试图做什么?@K.Nicholas我试图实现示例149您应该持久化Dummy3实体。我在dummy2中添加了@ManyTone(cascade=CascadeType.ALL)的可能副本。那不是也一样吗?有没有其他方法可以在不显式持久化的情况下持久化它?