Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Database/JDBC/SQL/JDO/Hibernate  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 hibernate中不必要的sql update问题
jvcoffee





发贴: 1
积分: 0
于 2009-07-29 10:04 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
hibernate in action第二版中有一段是这么说明的:
"从获取方法返回一个不同的对象,通常比由Hibernate传递到设置方法的对象来的安全。hibernate按值比较对象--不是按对象的同一性--来确定一个属性的持久化状态是否需要被更新"
下面用代码来说明一下:(比如一个user类)

public class User implements serilizable{
private String name;

public void setName(String name){
this.name = name;
}

//所说建议的写法,这么写就不会导致不必要的sql update
public String getName(){
return new String(name);
}

//而大部分通常的写法是
public String getName(){
return this.name;
}
}

比较迷惑的问题是:
1、如果"对象的同一性"相等的话,那么equals(按值比较)必定相等,这和是否产生不必要的更新有什么因果关系?
2、如果按照他的逻辑,确实可以对性能有少许提升,但是岂不是有点浪费内存了?




flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2018 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号
客服电话 0592-8750026    客服信箱 714923@qq.com    客服QQ 714923