-3
アノテーションによるハイバネート1対1の関連付けを実装するアプリケーションをHibernateで試行しています。私は2つのPOJOクラスを使用してお互いに関連付けていますが、実行時にはこの問題に直面しています。アノテーションによる1対1のマッピングのハイバネーション
コード:2つのクラスの学生、住所があります。両方の間に双方向の1-1マッピングが必要です。以下は
@Entity
@Table(name = "STUDENT")
public class Student {
@Id
@GeneratedValue
@Column(name = "STUDENT_ID")
private long id;
@Column(name = "FIRST_NAME")
private String firstName;
@OneToOne(mappedBy="student", cascade = CascadeType.ALL)
private Address address;
----getters and setters---
}
@Entity
@Table(name = "ADDRESS")
public class Address {
@Id
@Column(name="ADDRESS_ID")
@GeneratedValue(generator="gen")
@GenericGenerator(name="gen", strategy="foreign",[email protected](name="property", value="student"))
private long id;
@Column(name = "STREET")
private String street;
@Column(name = "CITY")
private String city;
@Column(name = "COUNTRY")
private String country;
@OneToOne
@PrimaryKeyJoinColumn
private Student student;
----getters and setters---
}
例外トレース
public class MainClass1 {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
Student student = new Student("Sam","Disilva","Maths");
Address address = new Address("10 Silver street","NYC","USA");
student.setAddress(address);
session.save(address);
session.save(student);
session.getTransaction().commit();
HibernateUtil.shutdown();
}
}
私のサンプルのメインクラスです:
Initial SessionFactory creation failed.java.lang.NullPointerException
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.learn.main.HibernateUtil.buildSessionFactory(HibernateUtil.java:15)
at com.learn.main.HibernateUtil.<clinit>(HibernateUtil.java:8)
at com.learn.main.MainClass1.main(MainClass1.java:17)
Caused by: java.lang.NullPointerException
at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:135)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1127)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:296)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1283)
at com.learn.main.HibernateUtil.buildSessionFactory(HibernateUtil.java:12)
... 2 more
コードを追加してください。 –
また、問題文も追加してください... – meskobalazs
私の質問に上記のコードを追加しました – Ajay