遇到这样的问题,用hibernate 开发,myeclipse 反向生成映射文件,现有表eventAlert,此表是个没有主键的表,生成的映射文件,如下:
<hibernate-mapping>
<class name="com.tomsync.vo.EventAlert" table="EventAlert" catalog="obm">
<composite-id name="id" class="com.tomsync.vo.EventAlertId">
<key-property name="eventalertTimeupdate" type="java.util.Date">
<column name="eventalert_timeupdate" length="19" />
</key-property>
<key-property name="eventalertTimecreate" type="java.util.Date">
<column name="eventalert_timecreate" length="19" />
</key-property>
<key-many-to-one name="userObm" class="com.tomsync.vo.UserObm">
<column name="eventalert_userupdate" />
</key-many-to-one>
<key-many-to-one name="userObm_1" class="com.tomsync.vo.UserObm">
<column name="eventalert_usercreate" />
</key-many-to-one>
<key-many-to-one name="event" class="com.tomsync.vo.Event">
<column name="eventalert_event_id" />
</key-many-to-one>
<key-many-to-one name="userObm_2" class="com.tomsync.vo.UserObm">
<column name="eventalert_user_id" />
</key-many-to-one>
<key-property name="eventalertDuration" type="java.lang.Integer">
<column name="eventalert_duration" />
</key-property>
</composite-id>
<many-to-one name="userObmByEventalertUserupdate" class="com.tomsync.vo.UserObm" update="false" insert="false" fetch="select">
<column name="eventalert_userupdate" />
</many-to-one>
<many-to-one name="userObmByEventalertUserId" class="com.tomsync.vo.UserObm" update="false" insert="false" fetch="select">
<column name="eventalert_user_id" />
</many-to-one>
<many-to-one name="event" class="com.tomsync.vo.Event" update="false" insert="false" fetch="select">
<column name="eventalert_event_id" />
</many-to-one>
<many-to-one name="userObmByEventalertUsercreate" class="com.tomsync.vo.UserObm" update="false" insert="false" fetch="select">
<column name="eventalert_usercreate" />
</many-to-one>
</class>
</hibernate-mapping>
如上,虚拟出类 com.tomsync.vo.EventAlertId 作为它的主键,在项目中,读取,没有问题,当我要对 com.tomsync.vo.EventAlertId 类中的 eventalertDuration 做更新的时候,不抱异常,项目运行一切正常,但是,库中的数据就是没有改过来。还是新建时候的数据。
请问,对于虚拟出来的主键 com.tomsync.vo.EventAlertId 类中的属性 eventalertDuration 是不是不可修改?