我有两个表如下
@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();
}
但是当我尝试运行它时,它给了我空指针异常。任何人有想法,请帮助我。