我必须更改什么才能避免 Hibernate 给我惰性 javassist 实例代理而不是真正的实体?

更新:我正在使用 Spring 3.x 和 Hibernate 4.x

我用来加载实体的 API 是 org.hibernate.internal.SessionImpl#load(Person.class, Id) 并且映射很简单:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
 
<hibernate-mapping package="org.perfectjpattern.example.model"> 
<class name="Person" table="PERSON_" > 
    <id name="id"> 
        <generator class="native"></generator> 
    </id> 
    <property name="name" update="false" /> 
    <property name="age" update="true" /> 
</class> 
 
<query name="Person.findByName"> 
    <![CDATA[select p from Person p where p.name = ? ]]> 
</query> 
 
<query name="Person.findByAge"> 
    <![CDATA[select p from Person p where p.age = :Age ]]> 
</query> 
</hibernate-mapping> 

请您参考如下方法:

使用get()而不是 load() .


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!