Reputation: 113
I have following piece of code..
working fine (staffTbl
is not getting fetch lazily)
@OneToOne(fetch=FetchType.LAZY)
@JoinColumns({@javax.persistence.JoinColumn(name="inst_id", referencedColumnName="inst_id", insertable=false, updatable=false), @javax.persistence.JoinColumn(name="staff_id", referencedColumnName="staff_id", insertable=false, updatable=false)})
private StaffTbl staffTbl;
but when I made this transient its always fetching null:
@OneToOne(fetch=FetchType.LAZY)
@JoinColumns({@javax.persistence.JoinColumn(name="inst_id", referencedColumnName="inst_id", insertable=false, updatable=false), @javax.persistence.JoinColumn(name="staff_id", referencedColumnName="staff_id", insertable=false, updatable=false)})
private transient StaffTbl staffTbl;
Is there any mistake?
(I'm using Hibernate 3, with JBoss 6.1)
Upvotes: 0
Views: 161
Reputation: 24423
transient
as a java keyword means that this field should be ignored when the object is serialized, so you probably are seeing effects of this. The question is what are you trying to achieve?
If you meant to mark staffTbl
as transient in the context of Hibernate, you should have annotated it with @Transient
, but you will have to set its value then, since it won't come from the database and you can expect more nulls.
Upvotes: 0
Reputation: 3748
Is there any mistake?
if a field has marked as transient, it means they are not part of the persistent state of the entity.
Solution:
change to:
private StaffTbl staffTbl;
Upvotes: 1