Reputation: 31
I have two Table as follows
@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;
....
another is
@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;
.....
Now i would like to get all the organizers name based on booking id, if booking_basic have booking_id 1 and org_id = 15, then i would like to access the organizer name where org_id is 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();
}
But when i try to run it, it's giving me null pointer exception. Any body have idea, Please help me.
Upvotes: 2
Views: 2754
Reputation: 11579
Try this:
session.createQuery("FROM Booking_Basic as b left join b.organizer_basic as o");
Upvotes: 1