运行struts_jdon_hibernate3出的一点问题

08-03-24 sdaucs
俺学习jdon已经有一个多月了,运行实例+看文档。不过在这里我想问大家一个小问题:运行struts_jdon_hibernate3实例时,当修改user后提交时,与user表相关的address和property表都会增加一些重复的值。明明只是对address和property表进行的一些修改,却变成了增加一列重复值。俺改了很长时间了,也没解决,不知道我有没有说清楚。

lqixv
2008-03-25 11:40
我在测试时没发现这个问题,你详细说一下你的操作过程。

sdaucs
2008-03-25 13:13
我说明白一些:当create数据时,user表会添加一条数据,address表也会添加一条关联数据,同时property表会添加四条数据。可是当update数据时,要更新的user表的数据当然会修改了,可是与user表相关的address表和property表都不是更新数据,而是增加数据。这样的话,每进行一次编辑时,都会给address表和property表增加数据。就是这个问题了,说明白了么?

lqixv
2008-03-25 15:33
我试了一下,确实如你所说的那样。问题是在通过 web 来运行时出现的。(我原来测试是使用了 HibernateTemplateTest 来测试,所以没发现问题。)

改正方法如下:
在 user.jsp 中,在<html:form ...> 和 </html:form>之间加入几条语句即可:
<html:hidden name="userForm" property="address.id"/>
<html:hidden name="userForm" property="properties[0].id"/>
<html:hidden name="userForm" property="properties[1].id"/>
<html:hidden name="userForm" property="properties[2].id"/>

banq
2008-03-25 15:35
很不错,我刚准备说,可能是和Web前端有了一个来回,Address等丢失了原来的ID.

sdaucs
2008-03-25 22:06
update是没有问题了,可是create时又出问题了:
a different object with the same identifier value was already associated with the session: [sample.model.Property#]
我大概也猜出问题所在了,我经过下面的修改,终于解决问题了。
<logic:present name="userForm" property="address.id">
<html:hidden name="userForm" property="address.id"/>
</logic:present>

...........
........
......

<logic:present name="userForm" property="properties[0].id">
<html:hidden name="userForm" property="properties[0].id"/>
</logic:present>

............

<logic:present name="userForm" property="properties[1].id">
<html:hidden name="userForm" property="properties[1].id"/>
</logic:present>

............

<logic:present name="userForm" property="properties[2].id">
<html:hidden name="userForm" property="properties[2].id"/>
</logic:present>

[该贴被sdaucs于2008-03-25 22:08修改过]

lqixv
2008-03-26 09:37
呵呵,不错啊!大家一起努力,把我们能做的事情做一些,提高自己的同时也算是对 jdon 框架的支持!这样 banq 也可以有多点时间去完善框架,不用面对那么多人的指指点点。
我大约是从04年就开始到这里来了的,但基本上是只是在旁边看热闹,顺便学点东西。但让我感动的是 banq 不管是对初学者还是大牛们,不管是赞扬还是指责,都几乎每贴必服。这真是很不容易。这也给了我信心,我想 jdon 将来会越来越好的。所以我今天有机会选择框架去做一些东西的时候,我首先想到了 jdon。现在在使用 jdon 的同时也提高了自己,还有就是现在似乎能为 jdon 做点事情了,真是很开心。我想,其实每件好事都必须由大家一起来发扬,事情才会更好;每个好东西,大家一起贡献自己的智慧,这个东西才会更好。jdon当年称自己是最好的框架,我不知是不是。但今天,我们一起努力,共同推动 jdon 朝这个方向前进吧。

[该贴被lqixv于2008-03-26 09:58修改过]

oojdon
2008-03-26 10:12
lqixv
可不可以把能够正常运行的struts_jdon_hibernate3帖上来,我开始学的时候没搞成功就转研究jivejdon了。

banq
2008-03-26 10:36
我已经更新了struts_jdon_hibernate3的下载包,可去下载页面下载

hncsyilin
2008-04-07 18:25
当经过service取出model,修改一些属性后update,关联的子表同样不是更新,而是新增了


猜你喜欢