hibernate3.0才增加了视图的查询功能,从楼主的配置文件看貌似还在使用2.x的hibernate,如何能够实现视图功能呢?

解决方案 »

  1.   

    楼上大哥,我用的是HIBERNATE3.0,不过我刚刚解决这个问题了
    原来我的配置文件里把视图中所有的字段作为联合主键(因为是MIDDLEGEN自动生成的),所以发生我上面提到的情况,现在我只把视图中能够标识记录唯一性的几个字段作为联合主键,其余作为PROPERTY,取出的记录就没问题了.
    100分,大家来分吧!
      

  2.   

    我是看到你的配置还是2.x的:
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
      

  3.   

    Hibernate3增加了视图功能1. 定义hbm 
        <class name="Customer" table="customer">
            <id name="id" unsaved-value="0" column="id">
                <generator class="hilo"/>
            </id>
            <property name="name"  not-null="true"/>
        </class>
        
        <class name="Supplier" table="supplier">
            <id name="id" unsaved-value="0" column="id">
                <generator class="hilo"/>
            </id>
            <property name="name" not-null="true"/>
        </class>
        
        <class name="All" mutable="false">
            <subselect>
                select id, name from customer
                union 
                select id, name from supplier
            </subselect>
            
            <synchronize table="customer"/>
            <synchronize table="supplier"/>
            
            <id name="id" unsaved-value="0" column="id">
                <generator class="hilo"/>
            </id>
            <property name="name"/>
       </class>2. 定义POJO 
    pulic class Customer {
       public Integer id;
       public String name;
    }pulic class Supplier {
       public Integer id;
       public String name;
    }pulic class All {
       public Integer id;
       public String name;
    }3. 查询 
    List all = session.createQuery("from All").list();