hibernate 之joined-subclass 标签

"1.0"?> 
   "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
package
="com.randy.bean2"
  <class name="Item" table="t_Item"
     
    "id"

    class="native"/> 
     
    "name" /> 
    "Book" table="t_book"
      "sid" /> 
      "page" /> 
    
 
     
    "Dvd" table="t_dvd"
      "ids" /> 
      "region" /> 
    
 
  class> 
    
    
以上是 实体的映射文件 String hql = "from Item"
    List userlist = session.createQuery(hql).list(); Hibernate 会生成如下的SQL select item0_.id as id0_, 
             item0_.name as name0_, 
             item0_1_.page as page1_, 
             item0_2_.region as region2_, 
              case 
                 when item0_1_.sid is not  null then 
                    1 
                 when item0_2_.ids is not  null then 
                    2 
                 when item0_.id is not  null then 
                    0 
             end as clazz_ 
    from t_Item item0_ 
    left outer join t_book item0_1_ on item0_.id = item0_1_.sid 
    left outer join t_dvd item0_2_ on item0_.id = item0_2_.ids 
但是如果是 Table per Concrete Class ,(一个子类对应一个表,父类没有表); 则会生成2条sql, 分别查询2个子表


本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/245912,如需转载请自行联系原作者


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部