Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java =================================================================== diff -u -r14091 -r14100 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 14091) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 14100) @@ -13,6 +13,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.Index; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; @@ -29,8 +30,6 @@ import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.Cascade; -import org.hibernate.annotations.LazyCollection; -import org.hibernate.annotations.LazyCollectionOption; import com.fasterxml.jackson.annotation.JsonIgnore; import com.forgon.Constants; @@ -48,7 +47,7 @@ */ @Entity -@Table(name = "TousseDefinition") +@Table(name = "TousseDefinition",indexes = {@Index(columnList = "name", name = "name"),@Index(columnList = "materialsMD5", name = "materialsMD5")}) @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class TousseDefinition{ Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r14048 -r14100 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 14048) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 14100) @@ -3188,13 +3188,17 @@ .getNonStringFieldInCollectionsPredicate( "t.invoicePlanID", invoicePlanIDSet)); List materialsMD5List = objectDao.findByHql(sql2); + Set materialsMD5Set = new HashSet(); + if(materialsMD5List != null){ + materialsMD5Set.addAll(materialsMD5List); + } sql = String .format(" where %s and (%s and po.tousseFixedBarcode=false and %s )", SqlUtils.getStringFieldPredicate("po.status", TousseInstance.STATUS_DISINFECTED), SqlUtils.getStringFieldPredicate("po.tousseName", tousseDefinitionName), SqlUtils.getStringFieldInCollectionsPredicate( - "po.tousseDefinition.materialsMD5", materialsMD5List)); + "po.tousseDefinition.materialsMD5", materialsMD5Set)); return sql; }