Я пытаюсь реализовать составные идентификаторы с @EmbeddedId. При запуске нижеприведенного метода main таблица dummy1 вставила данные. В таблице dummy3 не было записей. Какие изменения необходимы для вставки данных в таблицу dummy3? Пожалуйста, найдите ниже классы для вашей справки.
Dummy1.java
@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();
}