hibernate查询部分字段,同时映射出set集合的问题!高手进来吧!我在网上查了挺多,没有什么收获信息
有2个表,分别是:Policeman:(id,name,sex,age),警员基本信息表work:(id,workplace,fromDate,toDate,police...
有2个表,分别是:
Policeman:(id,name,sex,age),警员基本信息表
work:(id,workplace,fromDate,toDate,policeman_id),工作经历表
其中policeman_id是对应的警员的id,表示这一条工作记录是哪个警员的。
public Class Police{
private int id;
private String name;
private int sex;
private int age;
private Set work;//警员对应的所有工总经历
//下面是set和get和构造方法
}
public Class Work{
private int id;
private String workPlace;
private Date fromDate;
//......其他属性就不写了
//下面是set和get和构造方法
}
在hibernate中相关的配置都弄好了,配置文件什么的都没问题。
如:
select p from Policeman p where p.id=123;返回的结果是警员的基本信息和他所有的工作经历,Policeman中的set集合,hibernate会自动映射出。
问题一(已解决的):
我想查询某一个警员的id和name,用select new Policeman(p.id,p.name) from Policeman p where p.id=123;其中new Policeman(p.id,p.name)这个构造方法写好了,这条语句没问题,可以查询;可以查出id=123这个警员的id和name。
问题二(我想问的!):
我想查询某一个警员的id和name,同时也要查询出他的所有的工作经历,如果通过select p from Policeman p where p.id=123;这样查询,hibernate会自动映射出set集合。我想问,如何查询部分字段,同时也让hibernate映射出set集合
有没有高手能解决?悬赏15分,解决后会追加积分。万一没人解决,悬赏的积分不是浪费了吗,一旦解决后,必定奖励!这个问题困扰了我好几个项目了..... 展开
Policeman:(id,name,sex,age),警员基本信息表
work:(id,workplace,fromDate,toDate,policeman_id),工作经历表
其中policeman_id是对应的警员的id,表示这一条工作记录是哪个警员的。
public Class Police{
private int id;
private String name;
private int sex;
private int age;
private Set work;//警员对应的所有工总经历
//下面是set和get和构造方法
}
public Class Work{
private int id;
private String workPlace;
private Date fromDate;
//......其他属性就不写了
//下面是set和get和构造方法
}
在hibernate中相关的配置都弄好了,配置文件什么的都没问题。
如:
select p from Policeman p where p.id=123;返回的结果是警员的基本信息和他所有的工作经历,Policeman中的set集合,hibernate会自动映射出。
问题一(已解决的):
我想查询某一个警员的id和name,用select new Policeman(p.id,p.name) from Policeman p where p.id=123;其中new Policeman(p.id,p.name)这个构造方法写好了,这条语句没问题,可以查询;可以查出id=123这个警员的id和name。
问题二(我想问的!):
我想查询某一个警员的id和name,同时也要查询出他的所有的工作经历,如果通过select p from Policeman p where p.id=123;这样查询,hibernate会自动映射出set集合。我想问,如何查询部分字段,同时也让hibernate映射出set集合
有没有高手能解决?悬赏15分,解决后会追加积分。万一没人解决,悬赏的积分不是浪费了吗,一旦解决后,必定奖励!这个问题困扰了我好几个项目了..... 展开
3个回答
展开全部
你查出的是一个对象,set里也是这个对象,当然是全部映射到set中了呀,查出了需要的数据,至于要用多少就看你自己了呀
更多追问追答
追问
当我查询select p from Policeman p where p.id=123;的时候查出的结果中有Policeman下的set集合的内容;但是select new Policeman(p.id,p.name) from Policeman p where p.id=123;的时候,set集合的内容就没有了,空的,这时候怎么才能让hibernate为我映射进来呢
追答
在实体类中, Policeman(id,name)这个构造方法有么?
展开全部
为啥要只映射部分字段呢?将所有信息查出来你想用哪个就用哪个呗?你这个需求比较奇怪!
而且,你查询两个字段和查询所有字段都需要执行select,只是投影多少列的问题,性能等也没有减轻!
而且,你查询两个字段和查询所有字段都需要执行select,只是投影多少列的问题,性能等也没有减轻!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把set放在部分字段里一起查不就得了??
追问
如何查,这样select new Policeman(p.id,p.name,p.work) from Pliceman p 后面怎么写?试过了,hibernate不会给我映射进来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询