Hibernate多态查询

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="net.gehua.weixin.model.sendMsg.SendMsg" table="t_send_msg" lazy="false">
<id name="id" type="java.lang.Long">
<generator class="increment" />
</id>

<!-- 鉴别器字段,必须放在id后面. 子类中要添加discriminator-value="?", 给鉴别器字段赋值 -->
<discriminator column="type" type="string" />  <!-- 这里的string类型是Hibernate的类型, 全小写 -->

<property name="msgType" />
<property name="createTime" column="create_time" />
<property name="updateTime" column="update_time" />

<subclass name="net.gehua.weixin.model.sendMsg.SendImageMsg" discriminator-value="SendImageMsg">
<property name="mediaId" />
</subclass>

<subclass name="net.gehua.weixin.model.sendMsg.SendTextMsg" discriminator-value="SendTextMsg">
<property name="content" />
</subclass>

</class>

</hibernate-mapping>

class属性一定要添加lazy="false" get方法才支持多态查询

猜你喜欢

转载自wanlinjin.iteye.com/blog/2098364
今日推荐