问题描述
现有2个表, privilege,menus 表,我现有如下sqlSELECT m.id, m.menuId,m.parentId,m.menuName,p.privilege FROM privilege p,menus m WHERE m.id=p.menuid,但是这个没法orm,现用hibernate,如果想让返回的也是一个对象(包含m.id, m.menuId,m.parentId,m.menuName,p.privilege这几个字段值),能用get方法取值,除了建一个包含所要返回的pojo,还有什么别人方法可以?谢谢! 问题补充:飞雪无情 写道
解决方案
不是啊。用orm和这个vo没关系啊。先说你这2个表, privilege,menus 表都有对应的实体吧?实体有对应的hbm映射文件吧,这就没问题了,这已经交给hibernate管理持久化了,你就可以使用我上面说的hql语句返回你想要的vo了。vo只是为了你前台展示方便而创建的,和orm没有关系
解决方案二:
只要你进行了关联取值肯定可以去得到的啊、就是在做展示的时候有时候可能会用到新建的VO
解决方案三:
为什么没法orm,你这个查询很简单啊。如果你这些对象都做了持久化。就好办了。新建一个vo,vo包含你要返回的字段,然后语句使用 select new com.domain.MyVo(m.id,m.menuId) from FROM privilege p,menus m WHERE m.id=p.menuid";你这个vo对象就出来了。。很简单!
时间: 2024-10-01 19:11:31