关于Hibernate的问题,lazy=true和proxy lazy="true"是用来指定一个collection延迟载入的,和proxy没关系。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那就是说只要在配置文件中写上 lazy=true就可以了,在自己的程序中不用特殊编写。但是proxy是怎麽回事?它是做什莫用的?困惑我很久了 :( >那就是说只要在配置文件中写上 lazy=true就可以了,在自己的程序中不用特殊编写。<对,但只有collection有lazy这个属性,你可以看看dtd。>但是proxy是怎麽回事?它是做什莫用的?困惑我很久了 :(<比如说User和Group是many-to-one的关系,User中有一个类型为Group的属性group,若你想要载入一个User时,它的Group属性group要延迟载入,A 那你就必须为Group类定义proxy,这个proxy一般可以定义为两种 1 Group类本身 2 一个被Group类实现的,且包含了Group类的所有业务方法的接口,这种做法可以克服第一种做法的一些缺点,但会比较麻烦,因为要定义一个接口嘛。B 映射文件中这个<many-to-one>的outer-join要定义为 1 "false"(如果你在hibernate.properties或hibernate.cfg.xml文件中定义了hibernate.use_outer_join true) 2 "auto"(默认的)或"false"(hibernate.use_outer_join false),(我没有试过当hibernate.use_outer_join false时,<many-to-one>的outer-join定义为"true",会不会延迟载入和还是会用outer join一并取出关联对象(在这里就是group对象),你可以试试)hibernate中proxy是用cglib生成的动态代理,你可以看看相应的原码。再仔细看看文档加上实践,应该不难弄懂的:) Compass + paoding中文分词的问题 SSH2底层CRUD如何精简,请高手指点 hibernate连接多数据库 SSH查询 java中b/s和c/s能互相通讯吗? 倾囊相求:struts中的forward问题 掌握XML需要看哪本书?练习哪些? 如何在电子政务的数据交换平台下保持数据库的同步??? 小弟求教 一个在jbuilder8里启动启动weblogic7的问题,大侠帮帮忙啊! 向oracle 的blob写数据出问题了!高分求救 struts中文件上传的问题
但是proxy是怎麽回事?它是做什莫用的?困惑我很久了 :(
对,但只有collection有lazy这个属性,你可以看看dtd。
>但是proxy是怎麽回事?它是做什莫用的?困惑我很久了 :(<
比如说User和Group是many-to-one的关系,User中有一个类型为Group的属性group,
若你想要载入一个User时,它的Group属性group要延迟载入,A 那你就必须为Group类定义proxy,这个proxy一般可以定义为两种
1 Group类本身
2 一个被Group类实现的,且包含了Group类的所有业务方法的接口,这种做法可以克服第一种做法的一些缺点,但会比较麻烦,因为要定义一个接口嘛。B 映射文件中这个<many-to-one>的outer-join要定义为
1 "false"(如果你在hibernate.properties或hibernate.cfg.xml文件中定义了hibernate.use_outer_join true)
2 "auto"(默认的)或"false"(hibernate.use_outer_join false),(我没有试过当hibernate.use_outer_join false时,<many-to-one>的outer-join定义为"true",会不会延迟载入和还是会用outer join一并取出关联对象(在这里就是group对象),你可以试试)hibernate中proxy是用cglib生成的动态代理,你可以看看相应的原码。再仔细看看文档加上实践,应该不难弄懂的:)