diff --git a/contact-center/app/src/main/java/com/chatopera/cc/aspect/SyncDatabaseAspect.java b/contact-center/app/src/main/java/com/chatopera/cc/aspect/SyncDatabaseAspect.java index 6cc12b49afe035fef8b1d145a9630f5202ece382..22945c252125be0d3215fbc00f7d655cb533048c 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/aspect/SyncDatabaseAspect.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/aspect/SyncDatabaseAspect.java @@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.persistence.RollbackException; import java.util.List; @Aspect @@ -70,7 +71,7 @@ public class SyncDatabaseAspect { try { // 鏇存柊鏃讹紝鎵ц姝や唬鐮侊紝浣嗘槸鏂板缓鏃朵細鎶ラ敊 dbDataRes.saveOrUpdate(data); - } catch (StaleStateException ex) { + } catch (RollbackException ex) { // 鎶ラ敊鐨勬儏鍐典笅锛屾墽琛屾浠g爜 dbDataRes.save(data); } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/model/EntCustomer.java b/contact-center/app/src/main/java/com/chatopera/cc/model/EntCustomer.java index 84ee84c43cc29dbe4ec335c27669d8289006e077..3e7e5b3bd5b22bb4f81abf08f1060dc73986a4e6 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/model/EntCustomer.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/model/EntCustomer.java @@ -20,6 +20,8 @@ package com.chatopera.cc.model; import com.chatopera.cc.basic.MainUtils; import org.hibernate.annotations.GenericGenerator; import org.springframework.data.elasticsearch.annotations.Document; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; import javax.persistence.*; import java.util.Date; @@ -37,6 +39,7 @@ public class EntCustomer extends ESBean implements java.io.Serializable { private String id = MainUtils.getUUID(); + @Field(type = FieldType.Text, fielddata = true) private String name; private String etype; private String ekind; @@ -89,6 +92,7 @@ public class EntCustomer extends ESBean implements java.io.Serializable { private String processid; private String description; + @Field(type = FieldType.Text, fielddata = true) private String creater; private String username; private String updateuser; diff --git a/contact-center/app/src/main/java/com/chatopera/cc/persistence/hibernate/BaseService.java b/contact-center/app/src/main/java/com/chatopera/cc/persistence/hibernate/BaseService.java index 270b947498800a16b54553ccd4dbb3bc782d945d..bd6f38629a249086a33417441b7b725da521e71e 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/persistence/hibernate/BaseService.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/persistence/hibernate/BaseService.java @@ -46,14 +46,17 @@ public class BaseService<T> { */ public void saveOrUpdateAll(final List<Object> ts) { Session session = hibernateFactory.openSession(); + Transaction tx = session.beginTransaction(); try { - Transaction tx = session.beginTransaction(); for (final Object t : ts) { session.saveOrUpdate(t); } tx.commit(); } catch (Exception ex) { - ex.printStackTrace(); + if (ex != null) { + tx.rollback(); + } + throw ex; } finally { session.close(); } @@ -61,12 +64,15 @@ public class BaseService<T> { public void saveOrUpdate(final Object t) { Session session = hibernateFactory.openSession(); + Transaction tx = session.beginTransaction(); try { - Transaction tx = session.beginTransaction(); session.saveOrUpdate(t); tx.commit(); } catch (Exception ex) { - ex.printStackTrace(); + if (ex != null) { + tx.rollback(); + } + throw ex; } finally { session.close(); } @@ -74,12 +80,15 @@ public class BaseService<T> { public void save(final Object t) { Session session = hibernateFactory.openSession(); + Transaction tx = session.beginTransaction(); try { - Transaction tx = session.beginTransaction(); session.save(t); tx.commit(); } catch (Exception ex) { - ex.printStackTrace(); + if (ex != null) { + tx.rollback(); + } + throw ex; } finally { session.close(); } @@ -92,14 +101,17 @@ public class BaseService<T> { */ public void deleteAll(final List<Object> objects) { Session session = hibernateFactory.openSession(); + Transaction tx = session.beginTransaction(); try { - Transaction tx = session.beginTransaction(); for (final Object t : objects) { session.delete(session.merge(t)); } tx.commit(); } catch (Exception ex) { - ex.printStackTrace(); + if (ex != null) { + tx.rollback(); + } + throw ex; } finally { session.close(); } @@ -107,12 +119,15 @@ public class BaseService<T> { public void delete(final Object object) { Session session = hibernateFactory.openSession(); + Transaction tx = session.beginTransaction(); try { - Transaction tx = session.beginTransaction(); session.delete(session.merge(object)); tx.commit(); } catch (Exception ex) { - ex.printStackTrace(); + if (ex != null) { + tx.rollback(); + } + throw ex; } finally { session.close(); } @@ -122,8 +137,8 @@ public class BaseService<T> { public List<T> list(final String bean) { List<T> dataList = null; Session session = hibernateFactory.openSession(); + Transaction tx = session.beginTransaction(); try { - Transaction tx = session.beginTransaction(); dataList = session.createCriteria(Class.forName(bean)).list(); tx.commit(); } catch (Exception ex) {