我们都知道hibernate可以这样通过一个构造器去查询指定列
public Channel(int id, String name) { this.id = id; this.name = name; }
@Override public List<Channel> queryById(int id) { String hql = "select new Channel(channel.id, channel.name) from Channel as channel where channel.parent.id=:id"; Query query = super.getSession().createQuery(hql); query.setParameter("id", id); return query.list(); }
但假如我的Channel实体里面有一个set属性呢?也就是一对多的时候,比如像下面这样
public class Channel implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; private Channel parent; private String screening; private Set<Channel> children = Sets.newHashSet();
这是我的实体类,如果现在我只需要用HQL指定查询id name parent 和 children, 我不需要查询 screening的时候,请问我该怎么写?如果我的HQL写成
select new Channel(channel.id, channel.name, channel.parent, channel.children) from Channel然后给它这个指定查询添加一个包含有这几个字段的构造器,查询的时候是会报错的,不知道有没有解决的方法
同问
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。