JPA多条件查询(不适用Query)
有时候我们的条件是动态,这时就不适合在dao层写接口了
但是我们可以使用EntityManager来实现,如以下完整代码
StringBuffer mBuffer = new StringBuffer("and (");
for(Long l:groupids) {
mBuffer.append("m2.groupid="+l+" or ");
}
String subSql = mBuffer.substring(0, mBuffer.length()-4)+")";
String hql = "select m1 from my028888Userinfo m1,my028888Usergroupinfo m2 where m1.userid=m2.userid "+subSql;
Query createQuery = getEntityManager().createQuery(hql);
createQuery.setFirstResult(0);
createQuery.setMaxResults(100);
@SuppressWarnings("unchecked")
List<My028888Userinfo> list = createQuery.getResultList();上面使用的是hql查询,您也可以使用原生的sql查询
EntityManager可以通过注入实现,如下主要的代码片段
@Transactional
public abstract class BaseServiceImpl<T extends BaseEntity, ID extends Serializable> implements IBaseService<T, ID> {
public abstract IBaseDao<T, ID> getBaseDao();
@PersistenceContext
private EntityManager entityManager;爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情