有一个关于对象Set方法的问题。

zhongzuo1981 2009-12-04 09:37:24
截取代码中的几行,其中getLzFamilyCheckInfoByFamilyCode对应的是一个hql语句方法。

String familyCode = ParamUtils.getString(request, "familyCode", "");
LzFamilyCheckInfo lzFamilyCheckInfo1 = lzFamilyCheckInfoManager.getLzFamilyCheckInfoByFamilyCode(familyCode);
if(lzFamilyCheckInfo1 == null){
throw new Exception("没有家庭审核记录");
}

……

String districtAuditEnsureType = ParamUtils.getString(request, "districtAuditEnsureType", "");
lzFamilyCheckInfo1.setDistrictAuditEnsureType(new Byte(districtAuditEnsureType));

……

LzFamilyCheckInfo lzFamilyCheckInfo2 = lzFamilyCheckInfoManager.getLzFamilyCheckInfoByFamilyCode(familyCode);
System.out.pritnln("DistrictAuditEnsureType: "+lzFaliyCheckInfo.getDistrictAuditEnsureType());

……

lzFamilyCheckInfoManager.editOjbect(lzFamilyCheckInfo1);

问题是这样,首先取得lzFamilyCheckInfo1并将其中的一个属性Set新值,然后又取得lzFamilyCheckInfo2,
可打印出来的lzFamilyCheckInfo2中的属性已经是刚才lzFamilyCheckInfo1中Set的那个新值。

这是为什么啊?lzFamilyCheckInfo1还没有保持啊。

是否可以用java参数传递方式是按值还是按引用来解释?
...全文
163 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
caili314 2009-12-09
  • 打赏
  • 举报
回复
同一个对象的两个实例,把其中一个实例的某个属性set了新值,另一个实例的那个属性会变化么?
==>当然不会. 你设个断点看看lzFamilyCheckInfo1和lzFamilyCheckInfo2是不是同一个对象(看Object Id). 如果你没有改写过它的toString()方法, 也可以直接print一下, 看看是不是一样的.
zhongzuo1981 2009-12-07
  • 打赏
  • 举报
回复
有没有高人给讲一下
zhongzuo1981 2009-12-04
  • 打赏
  • 举报
回复
是用的hibernate,刚才改了一下,写了两个getLzFamilyCheckInfoByFamilyCode方法,1和2,语句一样。
public LzFamilyCheckInfo getLzFamilyCheckInfoByFamilyCode1(String familyCode) {
String hql = "from LzFamilyCheckInfo c where c.dataFlag=1 and c.abateDate is null and c.familyCode=?";
return (LzFamilyCheckInfo)super.uniqueResult(hql, new Object[]{familyCode});
}
……
两个方法都执行了查询语句,还是老问题。
我想知道,同一个对象的两个实例,把其中一个实例的某个属性set了新值,另一个实例的那个属性会变化么?
caili314 2009-12-04
  • 打赏
  • 举报
回复
你用的是Hibernate吧. 要看你的lzFamilyCheckInfoManager.getLzFamilyCheckInfoByFamilyCode(familyCode); 是怎么写的了. 如果是find, 那么hibernate会先在session cache中查找, 找不到的时候才访问数据库. 你看一下取lzFamilyCheckInfo1和lzFamilyCheckInfo2的时候, 有几条SQL (show_sql=true)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧