次のように2つのテーブルがあります
@Entity
@Table (name="booking_basic")
public class Booking_Basic {
@Id
@GeneratedValue
@Column (name="booking_id")
private int booking_id;
@GenericGenerator(name="foreign", strategy="foreign", parameters={@org.hibernate.annotations.Parameter(name="property", value="organizer_basic")})
@Column (name="org_id")
private int org_id;
@OneToOne(fetch=FetchType.EAGER, optional=true)
@PrimaryKeyJoinColumn
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
private Organizer_Basic organizer_basic;
....
もう一つは
@Entity
@Table(name="organizer_basic")
public class Organizer_Basic
{
@Id
@GeneratedValue
@Column(name="org_id")
private int org_id;
@Column(name="name")
private String name;
@OneToOne(cascade={javax.persistence.CascadeType.ALL}, fetch=FetchType.LAZY, mappedBy="organizer_basic")
@JoinColumn(name="org_id")
private Booking_Basic booking_basic;
.....
ここで、予約 ID に基づいてすべての主催者名を取得したいと思います。booking_basic が booking_id 1 で org_id = 15 の場合、org_id が 15 である主催者名にアクセスしたいと思います。
Session session = HibernateSessionFactory.getSessionFactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
Query query = session.createQuery("FROM Booking_Basic");
List<Booking_Basic> booking_basic = query.list();
for(Booking_Basic b : booking_basic)
System.out.print("Booking Type : " + b.getOrganizer_basic().getName());
}
transaction.commit();
}
catch (Exception e) {
e.printStackTrace();
transaction.rollback();
}
しかし、実行しようとすると、null ポインター例外が発生します。どんな体にも考えがあります、助けてください。