??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
Hibernate执行查询后又立马执行了更新(default-access)

转载   2013-03-25   浏览量:932


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

[java] 

<span style="font-size:14px;">public String getName()   

{     

    if(this.name==null)  

    {     

        this.name="";     

    }     

    return this.name;     

}    

</span>  

 

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

 

解决方式: 

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

<property name="name" type="java.lang.String" access="field">

  <column name="name" length="20" />

 </property>

 

default-access="field ¦property ¦ClassName"  

这里field表示Hibernate直接读取类中的字段值。

这种方式如果你在业务中不需要getter和setter的话,就可以不用写了。 这时,可以设置属性为不可变,可以不用执行脏检查。

 

property(默认)表示Hibernate通过getter和setter读取。

这种方式可以在getter和setter中做额外的处理。

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

转载自:https://www.2cto.com/kf/201303/197851.html

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



报错:Accessdeniedforuser'root'@'localhost' usingpassword:YES 的解决办法
报错:[email protected](usingpassword:YES)的解决办法。解决方案:打开MySQL目录下的myini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。(WIN7默认安装,myini在C:ProgramDataMySQLMySQLServer56)
Hibernate执行查询后又立马执行了更新(default-access)
在项目中遇到利用hibernate执行查询后立马又对数据库数据进行了更新,导致了错误。[java]<spanstyle="font-size:14px;">publicStringgetName(){if(this.name==null){this.nam...
RandomAccessFile类的简单介绍,以及代码演示
RandomAccessFile类,支持对文件的读取和写入。并且可以设置写入和读取的位置。该位置主要是以字节体现。相当于该文件存储在一个大型byte[]数组。隐含存在一个指向该数组的指针。类似于该类对象可以设置该隐含...
windows环境下出现Error 1045 28000 Access Denied for user 'root'@'localhost'解决方法
windows环境下出现Error1045(28000)[email protected]解决方法。1先在安装目录找到myini配置文件,打开配置文件,找到[mysqld]一行,在下面添加skip-grant-tables后保存该文件,重新启mysql动服务。
Microsoft Access (Snapview.ocx 10.0.5529.0) ActiveX Remote Exploit
/* Microsoft Access Snapshot Viewer ActiveX Control Exploit Ms-Acees SnapShot Exploit Snapview.ocx v 10.0.5529.0 Download nice binaries into an arbitrary box Vulnerability discovered by Oliver Lavery //www.securityfocus.
laravelSQLSTATE HY000 1045 Accessdeniedforuser'homestead'@'localhost' usingpassword:YES
PDOExceptioninConnectorphpline55:SQLSTATE[HY000][1045][email protected](usingpassword:YES)出现问题解决方法如下:
##Accessdeniedforuser'root'@'localhost' usingpassword:YES 问题解决方案
[email protected](usingpassword:YES)问题解决方案。解决方案:虚拟机里面安装的mysql数据库
简单实例:AccessVBA打开Excel表格然后关闭
简单实例:AccessVBA打开Excel表格然后关闭。
ERROR1045 28000 :Accessdeniedforuser'root'@'192.168.8.123' usingpassword:NO
ERROR1045(28000):Accessdeniedforuser&39;root&39;@&39;1921688123&39;(usingpassword:NO),链接MySQL报错这个。