package com.mes.em.service.common.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.mes.em.service.common.FactoryService;
import com.mes.em.dto.common.Condition;
import com.mes.em.dto.common.JoinPocoInfos;
import com.mes.em.dto.common.SqlParams;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.query.NativeQuery;
import org.hibernate.query.Query;
import org.hibernate.transform.Transformers;
import org.springframework.stereotype.Service;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class FactoryServiceImpl implements FactoryService {
@PersistenceContext
private EntityManager entityManager;
@Override
public List selectFactoryHql(String hql, List> sqlParams, List conList, Class cls) {
Session session = (Session) entityManager.getDelegate();
Query hqlQuery = session.createQuery(hql, cls);
if (null != sqlParams) {
sqlParams.forEach(e -> {
hqlQuery.setParameterList(e.getParamName(), e.getParamValues());
});
}
if (null != conList) {
conList.forEach(e -> {
hqlQuery.setParameter(e.getParamName(), e.getParamValue());
});
}
List list = hqlQuery.getResultList();
return list;
}
@Override
public List selectFactory(String sql, Class cls) {
javax.persistence.Query nativeQuery = entityManager.createNativeQuery(sql);
List list = new ArrayList<>();
List