JPA多条件查询(不适用Query)

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/天,具体规则查看活动详情Blog Img