采用struts2+hibernate,一个po(A)中采用另一个po(B)类而非其id作外键时,若A的input页面中没有用到B的属性,其页面也必须用<s:hidden/>标签存储B的id属性,而非B类,否则保存A时,会报hibernate保存瞬态对象错误。
注意点:
1. A的input页面若没有用到B,则表示B仅作为A的外键,而不对A中信息有直接影响。此情况下,进入A的input页面的action必须对A中的B进行赋值(即setter方法),否则A中的B将为空,setter方法赋的值为B对象。
2. <s:hidden/>标签存储的是B的id而不是B对象。
本文介绍在使用Struts2与Hibernate开发时,当一个POJO(A)使用另一个POJO(B)作为外键而非其ID时,在输入页面必须通过<s:hidden/>标签存储B的ID属性以避免Hibernate保存瞬态对象错误。文章还强调了相关注意事项。

被折叠的 条评论
为什么被折叠?



