Commit edc9a29a by WeiCong

根据hibernate升级做了几处调整

parent 3c5ab77e
...@@ -58,15 +58,23 @@ ...@@ -58,15 +58,23 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.7" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.7" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.7" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.7" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.7" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.7" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.1.17.Final" level="project" /> <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.6.9.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" /> <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.3.Final" level="project" />
<orderEntry type="library" name="Maven: javax.persistence:javax.persistence-api:2.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.12.9" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" /> <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1.1" level="project" /> <orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" /> <orderEntry type="library" name="Maven: org.jboss:jandex:2.4.2.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.0" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.1" level="project" /> <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-c3p0:5.1.17.Final" level="project" /> <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.1.0.Final" level="project" /> <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.1" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.1" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.7" level="project" />
<orderEntry type="library" name="Maven: org.jvnet.staxex:stax-ex:1.8" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.fastinfoset:FastInfoset:1.2.15" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-c3p0:5.6.9.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.1.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" /> <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: com.mchange:c3p0:0.9.5.2" level="project" /> <orderEntry type="library" name="Maven: com.mchange:c3p0:0.9.5.2" level="project" />
<orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.11" level="project" /> <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.11" level="project" />
......
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
<log4j2.version>2.12.1</log4j2.version> <log4j2.version>2.12.1</log4j2.version>
<ehcache.version>2.10.4</ehcache.version> <ehcache.version>2.10.4</ehcache.version>
<jackson.version>2.9.7</jackson.version> <jackson.version>2.9.7</jackson.version>
<hibernate.version>5.1.17.Final</hibernate.version> <hibernate.version>5.6.9.Final</hibernate.version>
<hibernate-commons-annotations.version>5.1.0.Final</hibernate-commons-annotations.version> <hibernate-commons-annotations.version>5.1.2.Final</hibernate-commons-annotations.version>
<java-jwt.version>2.2.0</java-jwt.version> <java-jwt.version>2.2.0</java-jwt.version>
<servlet-api.version>2.5</servlet-api.version> <servlet-api.version>2.5</servlet-api.version>
<junit.version>4.12</junit.version> <junit.version>4.12</junit.version>
......
...@@ -4,8 +4,8 @@ import log.Log; ...@@ -4,8 +4,8 @@ import log.Log;
import log.LogFactory; import log.LogFactory;
import org.apache.commons.beanutils.ConstructorUtils; import org.apache.commons.beanutils.ConstructorUtils;
import org.apache.commons.beanutils.MethodUtils; import org.apache.commons.beanutils.MethodUtils;
import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.query.Query;
import org.hibernate.transform.Transformers; import org.hibernate.transform.Transformers;
import org.sss.common.model.Argument; import org.sss.common.model.Argument;
import org.sss.common.model.IModule; import org.sss.common.model.IModule;
...@@ -105,8 +105,8 @@ public class PreHandle { ...@@ -105,8 +105,8 @@ public class PreHandle {
public static boolean initUserInr(String cid, String oid) { public static boolean initUserInr(String cid, String oid) {
Session session = HibernateUtils.openSession(null); Session session = HibernateUtils.openSession(null);
String ptySql = "select inr,ptytyp from pty where (ptytyp='2' or PTYTYP='1') and cid=?"; String ptySql = "select inr,ptytyp from pty where (ptytyp='2' or PTYTYP='1') and cid=?";
SQLQuery sqlQuery = session.createSQLQuery(ptySql); Query<Map> sqlQuery = session.createSQLQuery(ptySql);
sqlQuery.setString((int) 0, cid); sqlQuery.setParameter(1, cid);
sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map> ptyLst = sqlQuery.list(); List<Map> ptyLst = sqlQuery.list();
...@@ -117,8 +117,8 @@ public class PreHandle { ...@@ -117,8 +117,8 @@ public class PreHandle {
String ptyinr = (String) ptyRs.get("INR"); String ptyinr = (String) ptyRs.get("INR");
String usrSql = "select inr,lgnnam,oprnam from usr where oid=? and ptyinr=?"; String usrSql = "select inr,lgnnam,oprnam from usr where oid=? and ptyinr=?";
sqlQuery = session.createSQLQuery(usrSql); sqlQuery = session.createSQLQuery(usrSql);
sqlQuery.setString((int) 0, oid); sqlQuery.setParameter(1, oid);
sqlQuery.setString(1, ptyinr); sqlQuery.setParameter(2, ptyinr);
sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map> usrLst = sqlQuery.list(); List<Map> usrLst = sqlQuery.list();
if (usrLst == null || usrLst.size() == 0) { if (usrLst == null || usrLst.size() == 0) {
......
package org.sss.presentation.noui.cache; package org.sss.presentation.noui.cache;
import org.hibernate.Criteria; import org.hibernate.Criteria;
import org.hibernate.Query; import org.hibernate.query.Query;
import org.hibernate.internal.QueryImpl; import org.hibernate.query.internal.QueryImpl;
import org.sss.common.model.CacheController; import org.sss.common.model.CacheController;
import org.sss.common.model.CacheKey; import org.sss.common.model.CacheKey;
import org.sss.common.model.CacheList; import org.sss.common.model.CacheList;
import org.sss.common.model.IModuleList; import org.sss.common.model.IModuleList;
import org.sss.module.pojo.EibsResultSet; import org.sss.module.pojo.EibsResultSet;
import org.sss.presentation.noui.api.exception.NoUiException; import org.sss.presentation.noui.api.exception.NoUiException;
import org.sss.presentation.noui.common.Constants; import org.sss.presentation.noui.common.Constants;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public abstract class AbstractCache implements CacheController { public abstract class AbstractCache implements CacheController {
public static final ThreadLocal paginationMap = new ThreadLocal(); public static final ThreadLocal paginationMap = new ThreadLocal();
protected final String cacheName; protected final String cacheName;
final String SPLIT = "__"; final String SPLIT = "__";
final String NULL = "NULL"; final String NULL = "NULL";
public AbstractCache(String redis_cache) { public AbstractCache(String redis_cache) {
this.cacheName = redis_cache; this.cacheName = redis_cache;
} }
@Override @Override
public CacheList cacheRead(CacheKey cacheKey, long keepAlive, int maxSize, int offset) { public CacheList cacheRead(CacheKey cacheKey, long keepAlive, int maxSize, int offset) {
Object o = cacheKey.getKey(); Object o = cacheKey.getKey();
String fullSizeKey = generateKey(o); String fullSizeKey = generateKey(o);
String valKey = generateValKey(o, maxSize, offset); String valKey = generateValKey(o, maxSize, offset);
Object lstobj = doCacheRead(valKey); Object lstobj = doCacheRead(valKey);
List lst = null; List lst = null;
if (lstobj != null && List.class.isAssignableFrom(lstobj.getClass())) { if (lstobj != null && List.class.isAssignableFrom(lstobj.getClass())) {
lst = List.class.cast(lstobj); lst = List.class.cast(lstobj);
} else { } else {
lst = null; lst = null;
} }
if (lst == null) { if (lst == null) {
if (o instanceof Criteria) { if (o instanceof Criteria) {
Criteria criteria = (Criteria) o; Criteria criteria = (Criteria) o;
if (maxSize > 0) { if (maxSize > 0) {
criteria.setMaxResults(maxSize); criteria.setMaxResults(maxSize);
} }
if (offset > 0) { if (offset > 0) {
criteria.setFirstResult(offset); criteria.setFirstResult(offset);
} }
lst = criteria.list(); lst = criteria.list();
} else if (o instanceof Query) { } else if (o instanceof Query) {
Query query = (Query) o; Query query = (Query) o;
if (maxSize > 0) { if (maxSize > 0) {
query.setMaxResults(maxSize); query.setMaxResults(maxSize);
} }
if (offset > 0) { if (offset > 0) {
query.setFirstResult(offset); query.setFirstResult(offset);
} }
lst = query.list(); lst = query.list();
} else if (o instanceof EibsResultSet) { } else if (o instanceof EibsResultSet) {
EibsResultSet eibsResultSet = (EibsResultSet) o; EibsResultSet eibsResultSet = (EibsResultSet) o;
if (maxSize > 0) { if (maxSize > 0) {
eibsResultSet.setMaxResults(maxSize); eibsResultSet.setMaxResults(maxSize);
} }
if (offset > 0) { if (offset > 0) {
eibsResultSet.setFirstResult(offset); eibsResultSet.setFirstResult(offset);
} }
try { try {
lst = eibsResultSet.list(); lst = eibsResultSet.list();
} catch (SQLException e) { } catch (SQLException e) {
throw new NoUiException("[" + this.cacheName + "]执行sql出现异常", e); throw new NoUiException("[" + this.cacheName + "]执行sql出现异常", e);
} }
} }
if (lst != null) { if (lst != null) {
doCacheWrite(valKey, lst, keepAlive); doCacheWrite(valKey, lst, keepAlive);
} }
} }
Integer fullSize = (Integer) doCacheRead(fullSizeKey); Integer fullSize = (Integer) doCacheRead(fullSizeKey);
if (fullSize == null) if (fullSize == null)
fullSize = 0; fullSize = 0;
if (fullSize == 0) { if (fullSize == 0) {
try { try {
fullSize = cacheKey.getFullSize(); fullSize = cacheKey.getFullSize();
doCacheWrite(fullSizeKey, fullSize, keepAlive); doCacheWrite(fullSizeKey, fullSize, keepAlive);
} catch (Exception e) { } catch (Exception e) {
throw new NoUiException("[" + this.cacheName + "]执行getFullSize时出现异常", e); throw new NoUiException("[" + this.cacheName + "]执行getFullSize时出现异常", e);
} }
} }
return new CacheList(lst, fullSize); return new CacheList(lst, fullSize);
} }
private String generateValKey(Object o, int maxSize, int offset) { private String generateValKey(Object o, int maxSize, int offset) {
StringBuffer sb = new StringBuffer(generateKey(o)); StringBuffer sb = new StringBuffer(generateKey(o));
if (maxSize > 0) { if (maxSize > 0) {
sb.append(SPLIT.intern()); sb.append(SPLIT.intern());
sb.append(maxSize); sb.append(maxSize);
} }
if (offset >= 0) { if (offset >= 0) {
sb.append(SPLIT.intern()); sb.append(SPLIT.intern());
sb.append(offset); sb.append(offset);
} }
return sb.toString(); return sb.toString();
} }
private String generateKey(Object o) { private String generateKey(Object o) {
StringBuffer sb = new StringBuffer(cacheName); StringBuffer sb = new StringBuffer(cacheName);
sb.append(SPLIT.intern()); sb.append(SPLIT.intern());
sb.append(o.getClass().getSimpleName()).append(SPLIT.intern()); sb.append(o.getClass().getSimpleName()).append(SPLIT.intern());
if (o instanceof EibsResultSet) { if (o instanceof EibsResultSet) {
sb.append(((EibsResultSet) o).getSql()); sb.append(((EibsResultSet) o).getSql());
} else { } else if (o instanceof Query) {
sb.append(o.toString()); sb.append(((Query)o).getQueryString());
} } else {
if (o instanceof EibsResultSet || o instanceof QueryImpl) { sb.append(o.toString());
Object[] values = o instanceof EibsResultSet ? ((EibsResultSet) o).getArgs() : ((QueryImpl) o).valueArray(); }
if (values != null) { if (o instanceof EibsResultSet || o instanceof QueryImpl) {
for (Object val : values) { Object[] values =((EibsResultSet) o).getArgs();
sb.append(SPLIT.intern()); sb.append(appendKeyByPara(values));
if (val == null) { }
sb.append(NULL.intern()); return sb.toString();
} else }
sb.append(val.toString());
} private StringBuffer appendKeyByPara(Object[] values){
} StringBuffer sb = new StringBuffer();
} if (values != null) {
return sb.toString(); for (Object val : values) {
} sb.append(SPLIT.intern());
if (val == null) {
@Override sb.append(NULL.intern());
public void prepareReadset(IModuleList moduleList) { } else
Map<String, Map<String, Integer>> paginationCache = (Map<String, Map<String, Integer>>) paginationMap.get(); sb.append(val.toString());
if (paginationCache == null) }
return; }
Map<String, Integer> paginationItem = paginationCache.remove(moduleList.getUrl()); return sb;
if (paginationCache.size() == 0) }
paginationMap.remove();
if (paginationItem == null) @Override
return; public void prepareReadset(IModuleList moduleList) {
moduleList.setPageSize(paginationItem.get(Constants.PAGINATION_PAGESIZE)); Map<String, Map<String, Integer>> paginationCache = (Map<String, Map<String, Integer>>) paginationMap.get();
moduleList.setPage(paginationItem.get(Constants.PAGINATION_INDEX)); if (paginationCache == null)
} return;
Map<String, Integer> paginationItem = paginationCache.remove(moduleList.getUrl());
protected abstract Object doCacheRead(String key); if (paginationCache.size() == 0)
paginationMap.remove();
protected abstract void doCacheWrite(String key, Object lst, long keepAlive); if (paginationItem == null)
} return;
moduleList.setPageSize(paginationItem.get(Constants.PAGINATION_PAGESIZE));
moduleList.setPage(paginationItem.get(Constants.PAGINATION_INDEX));
}
protected abstract Object doCacheRead(String key);
protected abstract void doCacheWrite(String key, Object lst, long keepAlive);
}
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment