我写一个一对多(多对一)关联的小实例,在Cate.hbm.xml的关联设置如下:
        <set name="news" lazy="true" cascade="save-update" inverse="false">
         <key column="CATE_ID"/>
         <one-to-many class="News"/>
        </set>我每次只要返回一个Cate对象,如何设置不让hibernate自动执行多余的sql语句呢?我发现每次获取一个Cate对象的时候hibernate都自动把关联的News对象都放到Cate里面的Set中。ps:我把lazy设置成true还是这样真头痛啊。

解决方案 »

  1.   

    1.延迟加载的意思是hibernate并不是把News类的实例放在了set中
    而是News类代理类的实例,只含id属性,在session中访问到该实例
    其他属性才会再从数据库取值2.hibernate是执行的多条语句马?我觉得应该用的是一条join语句吧3.多对一都建议把<set ... .... inverse="true">吧我也刚学没多久,大家讨论把
      

  2.   

    谢谢。我的目的是让hibernate只执行一条select * from table where id = ? 语句,这样可以么?