设为首页 加入收藏

TOP

Hibernate执行查询后又立马执行了更新(default-access)
2014-11-24 07:56:42 来源: 作者: 【 】 浏览:1
Tags:Hibernate 执行 查询 后又 立马 更新 default-access

在项目中遇到利用hibernate执行查询后立马又对数据库数据进行了更新,导致了错误。


public String getName()
{
if(this.name==null)
{
this.name="";
}
return this.name;
}

因为在数据库中是null,在hibernate查询时会设置成“”。hibernate会任务session中的实体发生了改变,就会执行update。

解决方式:

采用的解决办法是将配置文件增加一个属性access="field" 这样就不会通过get方法比较属性而直接访问属性字段




default-access="field property ClassName"


这里field表示Hibernate直接读取类中的字段值。
这种方式如果你在业务中不需要getter和setter的话,就可以不用写了。 这时,可以设置属性为不可变,可以不用执行脏检查。

property(默认)表示Hibernate通过getter和setter读取。
这种方式可以在getter和setter中做额外的处理。

ClassName,是指使用实现了org.hibernate.property.PropertyAccessor接口的类的具体策略来访问字段属性。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MATLAB下的程序调试 下一篇Android webview 实现放大缩小 隐..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·请问c语言刚入门,该 (2025-12-26 10:21:04)
·python 编程怎么定义 (2025-12-26 10:21:01)
·09-指 针 (一)-c语言 (2025-12-26 10:20:58)
·About - Redis (2025-12-26 08:20:56)
·Redis: A Comprehens (2025-12-26 08:20:53)