ggg123111 2015-11-11 10:16 采纳率: 0%
浏览 1968

hibernate查询时Criteria怎么根据级联的两个类里的属性进行查询?

有3个表,A,B,C,
关系如下:

A-->List,B属性有time等;
A-->List,C属性有time等
Java代码:
Entity:
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "axxx_id")
@Fetch(FetchMode.SELECT)
public List getB() {
return b;
}

public void setB(List<B> b) {
    this.b = b;
}
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "axxx_id")
@Fetch(FetchMode.SELECT)
public List<C> getC() {
    return c;
}

public void setC(List<C> c) {
    this.c = c;
}

Server:

Criteria countCriteria = entityDao.getCriteria();
Criteria listCriteria = entityDao.getCriteria();
...
//*********************start***************************
//加条件 当类为一时可以这样
{
    countCriteria.createAlias("B", "b");
    listCriteria.createAlias("B", "b");
    countCriteria.add(Restrictions.le("b.time", time));
    listCriteria.add(Restrictions.le("b.time", time));
}
//********************end***************************

//现在类为一个List型的,该怎么加条件??



listCriteria.setFirstResult((pageNo-1)*pageSize);  
listCriteria.setMaxResults(pageSize);
List<A> items = listCriteria.list();

hibernate查询时Criteria怎么根据两个time进行查询?

  • 写回答

1条回答 默认 最新

  • ggg123111 2015-11-12 01:39
    关注

    问题已经解决:

    底层代码: 

     @Autowired
        @Qualifier("sessionFactory")
        protected SessionFactory sessionFactory;
    
        protected Session getSession() {
            return sessionFactory.getCurrentSession();
        }
    
        @Override
        public Criteria  getExecutableCriteria(){
            DetachedCriteria dc = DetachedCriteria .forClass(this.entityClass);
            return dc.getExecutableCriteria(getSession()); 
        }
    

    service调用代码:

     Criteria listCriteria = entityDao.getExecutableCriteria();
    listCriteria.createAlias("A","a",JoinType.LEFT_OUTER_JOIN);
    listCriteria.createAlias("B","b",JoinType.LEFT_OUTER_JOIN);
    
    listCriteria.add(Restrictions.or(Restrictions.lt("a.time", time, MatchMode.ANYWHERE),Restrictions.lt("b.time", time, MatchMode.ANYWHERE)));
    ... ...
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器