当前位置: 代码迷 >> Java Web开发 >> 使用hibernate没法动态更新。求帮忙
  详细解决方案

使用hibernate没法动态更新。求帮忙

热度:37   发布时间:2016-04-16 22:01:19.0
使用hibernate无法动态更新。。求帮忙
下面是的一个实体类的配置文件:
<hibernate-mapping package="cn.model.student">
<class name="Student" table="STUDENT_INFORMATION" dynamic-update="true" dynamic-insert="true" select-before-update="true">
<!-- 配置主键 -->
<id name="id" column="STUDENT_ID" type="string" >
<!-- assigned 让程序在save之前指定一个主键,不添加generator时的默认策略 -->
<generator class="assigned" />
</id>
<!-- 配置非主键属性 -->
<property name="account" column="ACCOUNT" type="string" />
<property name="name" column="STUDENT_NAME" type="string" />
<property name="sex" column="STUDENT_SEX" type="integer" />
<property name="collegeId" column="STUDENT_COLLEGE_ID" type="integer" />
<property name="majorId" column="STUDENT_MAJOR_ID" type="integer" />
                。。。。。。。省去N多字段
              <set name="certifications" >
<key column="STUDENT_ID"/>
<one-to-many class="Certification"/>
</set>
<set name="stuVideos">
<key column="STUDENT_ID"/>
<one-to-many class="StuVideo"/>
</set>
<set name="scores" lazy="true" fetch="select">
<key column="STUDENT_ID"/>
<one-to-many class="Score" />
</set>


首先我使用了dynamic-update="true"  无法只更新部分字段,而且我在service层写该方法的业务时是在一个session中,什么原因导致了我不能部分字段更新?
           

------解决方案--------------------
你是数据库只更新修改的字段,配置了dynamic-update="true"后要看看你Hibernate生成的sql语句是否是(update 表 set 字段 where 条件)格式;或者你可以直接使用HQL语句修改字段。
  相关解决方案