日期:2014-05-16  浏览次数:20937 次

Hibernate的异常net.sf.hibernate.PropertyAccessException: exception settin
点击右边红色标题查看本文完整版:Hibernate的异常net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of

数据库表:T_users ,T_groups ,T_modules
? 对应的XML:Tuser.hbm.xml,Tgroup.hbm.xml,Tmodule.hbm.xml
? 关系:user<—>group 是一对一的关系,group<—>module是一对多的关系
? 即,一个用户从属于一个群组,一个群组下包含多个功能模块
?
? Tuser.hbm.xml的部分配置:
?
? <!-- Associations -->
? <one-to-one
? name="group"
? class="com.wzr.spring.bean.Group"
? cascade="none"
? outer-join="auto"
? constrained="false"
? />
?
? Tgroup.hbm.xml的部分配置:
?
? <!-- Associations -->
? <set
? name="modules"
? table="t_modules"
? lazy="false"
? inverse="true"
? cascade="all"
? sort="unshorted"
? order-by="module_order asc"
? >
? <key
? column="group_id"
? />
? <one-to-many
? class="com.wzr.spring.bean.Module"/>
? </set>
?
? Tmodule.hbm.xml的部分配置:
?
? <!-- Associations -->
? <many-to-one
? name="group"
? class="com.wzr.spring.bean.Group"
? cascade="none"
? outer-join="auto"
? update="true"
? insert="true"
? access="property"
? column="group_id"
? not-null="true"
? />
?
? 使用Middlegen生成POJO,后在Junit中的测试代码如下:
?
? public void testInsert()throws Exception{
? Transaction tx=null;
? String hql="from Group where group_id='G000000001'";
? try{
? tx = session.beginTransaction();
? List groupList=session.find(hql);
? Group group=(Group)groupList.get(0);
? Module module=new Module();