请考虑以下代码:
@Entity
@Table(name = "a")
public class A implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
public int id;
@Transient
public B b;
public B getB()
{
return B;
}
}
当我获取A时,我手动填充B(另一个hibernate实体)。如果我尝试使用a.b进行访问,那么它会失败,但是,如果我使用a.getB();然后它成功了。
为什么会这样?
答案 0 :(得分:1)
听起来像一个懒惰的抓取问题。当你尝试直接访问它时,公共引用为null,但是当你用“get”执行它时,Hibernate知道调用数据库并为你保存该实例。
答案 1 :(得分:1)
答案 2 :(得分:0)
因为b场是暂时的。
是否需要瞬态?尝试删除它。