以编程方式更改更新插入属性

时间:2012-07-11 14:37:47

标签: java hibernate hibernate-mapping

我想知道是否可以更改类映射中定义的属性的插入和更新属性。 这是因为在一个场景中我需要更新一个属性(或属性),而不是在另一个属性中,它是否可行?

提前致谢

编辑:假设我有类用户(带名字,姓氏和登录日期),当用户登录应用程序时,我只需要更新loginDate。但系统管理员必须能够编辑用户的姓名和姓氏。 对我来说唯一的其他解决方案是使用HQL进行更新(或者在最坏的情况下使用SQL),但我想要修改那些属性是否可行。

编辑2:在阅读了使用hibernate和一些论坛帖子的Java持久性之后,我发现创建sessionFactory后,映射是不可变的,虽然你可以通过编程方式更改属性,但是你需要创建一个新的sessionFactory

1 个答案:

答案 0 :(得分:1)

// this is what the login screen calls
void updateLoginDate(Date date)
{
    User user = session.get(User.class);
    user.setDate(date);
    session.Flush();
}

并且在映射中,您可以在类上指定dynamicUpdate = true,以便生成的sql仅更新已更改的列