Hibernate可以懒惰地创建关联实体吗?

时间:2011-12-16 22:04:28

标签: hibernate

假设我有UserUserProfile个实体。我希望能够创建一个User u,将其保存/附加到Hibernate上下文,然后简单地调用,例如u.getUserProfile().setFirstName("Steve"),而不必实例化和设置UserProfile对象。

为清楚起见,这里有一些代码:

// create, populate, and save user with only some primitive values
// note that no UserProfile is explicitly set
User u = new User();
u.setSomePrimitive(somePrimitive);
u.setSomeOtherPrimitive(someOtherPrimitive);
session.save(u);

// navigate into and set something on the user profile
u.getUserProfile().setFirstName("Steve-o");

基本上,我希望Hibernate懒惰地为我实例化附加实体的关联。我认为Hibernate可以非常容易地标记为脏,并且只保留那些为其设置数据的懒惰创建的关联,否则忽略。

这可能吗?

1 个答案:

答案 0 :(得分:1)

不,它不是(这是一件好事!)。顺便说一下,只有一对一的强制性关联才有意义。在保存用户之前,您必须填写配置文件及其所有必需值。 new UserProfile()有什么困难?

如果您想这样做,可以在User的构造函数中创建配置文件,并设置级联,以便在用户使用时保存配置文件。