hibernate 视图 逆向工程 生成ID类解决

映射视图与表不同,会多生成XXXId的类,配置文件一般是联合主键 如:
<hibernate-mapping>
<class name="com.hhkj.workflow.bean.AllTablePb" table="V_ALLTAB_PB" schema="CANP">
<composite-id name="id" class="com.hhkj.workflow.bean.AllTablePbId">
   <key-property name="owner" type="string">
    <column name="OWNER" length="30" />
   </key-property>
   <key-property name="tableName" type="string">
    <column name="TABLE_NAME" length="30" />
   </key-property>
   <key-property name="columnName" type="string">
    <column name="COLUMN_NAME" length="30" />
   </key-property>
</composite-id>
</class>
</hibernate-mapping>


既然 视图就是表,那么在写类和映射文件的时候,无需有什么特别的地方,按照正常写就可以了,
只是主键需要处理一下,如上如果复合主键中有一个值为NULL,则 from view查询出来的集合中都是
NULL值.此时可以采用如下配置文件方式:
org.directwebremoting.servlet.DwrServlet
<hibernate-mapping>
    <class name="com.hhkj.workflow.bean.AllTablePbId" table="V_ALLTAB_PB">
     <id name="id" type="java.lang.String" column="ID" length="50" > 
         <generator class="assigned"></generator> 
     </id> 
            <property name="OWNER" type="java.util.Date">
                <column name="OWNER" length="30" />
            </property>
            <property name="TABLE_NAME" type="java.lang.String">
                <column name="TABLE_NAME" length="30" />
            </property>
            <property name="COLUMN_NAME" type="java.lang.String">
                <column name="COLUMN_NAME" length="30" />
            </property>
    </class>
</hibernate-mapping>


此处保证id为表中唯一字段,并且不为null。 
所以在用Hibernate对视图进行操作的时候应该注意:要确定好复合主键的个数,如果将所有字段
都作为复合主键.当一个为NULL时候,from view查询出来的集合中都是NULL值.其他操作类似Hibernate
对表的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值