|
|
|
@ -57,10 +57,12 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
|
|
|
|
|
this.snowflakeIdMaker = snowflakeIdMaker;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void clearSession(){
|
|
|
|
|
entityManager.clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void detachObject(T t){
|
|
|
|
|
if (t == null) {
|
|
|
|
|
return;
|
|
|
|
@ -69,6 +71,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//集合设置为游离态
|
|
|
|
|
@Override
|
|
|
|
|
public void detachList(List<T> list){
|
|
|
|
|
if(list != null){
|
|
|
|
|
for(T t : list) {
|
|
|
|
@ -525,6 +528,24 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<T> getByProperty(DdlPackBean ddlPackBean, boolean queryColumns) {
|
|
|
|
|
StringBuilder hqlStr = new StringBuilder();
|
|
|
|
|
if (queryColumns && ddlPackBean.getHqlColumns().size() > 0){
|
|
|
|
|
hqlStr.append("select ");
|
|
|
|
|
List<String> hqlColumns = ddlPackBean.getHqlColumns();
|
|
|
|
|
hqlColumns.forEach(column ->{ hqlStr.append(column).append(" ");});
|
|
|
|
|
}
|
|
|
|
|
Query query = entityManager.createQuery(hqlStr.toString() + " from " + persistentClass.getSimpleName()
|
|
|
|
|
+ " as model where 1=1 " + ddlPackBean.getPackedHql());
|
|
|
|
|
|
|
|
|
|
for (String key : ddlPackBean.getHqlPreparedMap().keySet()) {
|
|
|
|
|
query.setParameter("m_" + key,ddlPackBean.getHqlPreparedMap().get(key));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return query.getResultList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public T getByProperty(String propertyName, Object value) {
|
|
|
|
|
return getByPropertyPager(new String[]{propertyName}, new Object[]{value}, GETBYPROPERTY_PAGER);
|
|
|
|
|
}
|
|
|
|
@ -758,6 +779,26 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<T> findByHqlWhere(DdlPackBean packBean, boolean queryColumns) {
|
|
|
|
|
|
|
|
|
|
StringBuilder hqlStr = new StringBuilder();
|
|
|
|
|
if (queryColumns && packBean.getHqlColumns().size() > 0){
|
|
|
|
|
hqlStr.append("select ");
|
|
|
|
|
List<String> hqlColumns = packBean.getHqlColumns();
|
|
|
|
|
hqlColumns.forEach(column ->{ hqlStr.append(column).append(" ");});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Query query = entityManager.createQuery(hqlStr.toString() + " from " + persistentClass.getSimpleName()
|
|
|
|
|
+ " as model where 1=1 " + packBean.getPackedHql());
|
|
|
|
|
|
|
|
|
|
for (String key : packBean.getHqlPreparedMap().keySet()) {
|
|
|
|
|
query.setParameter("m_" + key,packBean.getHqlPreparedMap().get(key));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return query.getResultList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<T> findByHqlWhere(String hqlWhere, String[] propertyNames, Object[] values, String orderByStuff) {
|
|
|
|
|
if(propertyNames.length != values.length){
|
|
|
|
|
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:"
|
|
|
|
@ -894,6 +935,31 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<T> findByHqlWherePage(DdlPackBean packBean, Pager pager, Boolean queryColumns) {
|
|
|
|
|
if(pager != null) {
|
|
|
|
|
|
|
|
|
|
StringBuilder hqlStr = new StringBuilder();
|
|
|
|
|
if (queryColumns && packBean.getHqlColumns().size() > 0){
|
|
|
|
|
hqlStr.append("select ");
|
|
|
|
|
List<String> hqlColumns = packBean.getHqlColumns();
|
|
|
|
|
hqlColumns.forEach(column ->{ hqlStr.append(column).append(" ");});
|
|
|
|
|
}
|
|
|
|
|
Query query = entityManager.createQuery(hqlStr.toString() +" from " + persistentClass.getSimpleName()
|
|
|
|
|
+ " as model where 1=1 " + packBean.getPackedHql());
|
|
|
|
|
|
|
|
|
|
for (String key : packBean.getHqlPreparedMap().keySet()) {
|
|
|
|
|
query.setParameter("m_" + key,packBean.getHqlPreparedMap().get(key));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return query.setFirstResult(pager.getStartRow())
|
|
|
|
|
.setMaxResults(pager.getPageSize())
|
|
|
|
|
.getResultList();
|
|
|
|
|
}else{
|
|
|
|
|
return new ArrayList<T>();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Deprecated
|
|
|
|
|
@Override
|
|
|
|
|
public int findByHqlWhereCount(String hqlWhere) {
|
|
|
|
|