From d27eb14da45d5d31bbcefffd6d286bdb17873abd Mon Sep 17 00:00:00 2001 From: Michael Hierweck Date: Fri, 7 Jul 2017 18:53:06 +0200 Subject: [PATCH] Member Asset DAO and VO. --- .../hsadmin/dao/customer/MemberAssetDao.java | 33 ++++++ .../service/customer/MemberAssetVO.java | 101 ++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 cust-services/src/main/java/de/hsadmin/dao/customer/MemberAssetDao.java create mode 100644 cust-services/src/main/java/de/hsadmin/service/customer/MemberAssetVO.java diff --git a/cust-services/src/main/java/de/hsadmin/dao/customer/MemberAssetDao.java b/cust-services/src/main/java/de/hsadmin/dao/customer/MemberAssetDao.java new file mode 100644 index 0000000..82e2482 --- /dev/null +++ b/cust-services/src/main/java/de/hsadmin/dao/customer/MemberAssetDao.java @@ -0,0 +1,33 @@ +package de.hsadmin.dao.customer; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; + +import de.hsadmin.bo.customer.MemberAsset; +import de.hsadmin.common.error.TechnicalException; +import de.hsadmin.common.error.UserException; +import de.hsadmin.service.customer.MemberAssetVO; + +public class MemberAssetDao { + + @PersistenceContext(name="hsar") + private EntityManager entityManager; + + public MemberAsset findMemberAssetByValues(MemberAssetVO prototype) throws UserException, TechnicalException { + // TODO MHOENNIG -> PHORMANNS: warum werden immer alle verglichen? OptimisticLocking? + // (p.s. code analog zu Beispielen von dir) + final Query query = entityManager.createQuery("SELECT s FROM MemberAsset s " + + "WHERE s.customer.name = :customer " + + " AND m.action = :action " + + " AND m.date.name = :date" + + " AND m.amount = :amount" + + " AND m.comment = :comment"); + query.setParameter("customer", prototype.get("customer").getValue()); + query.setParameter("action", prototype.get("action").getValue()); + query.setParameter("date", prototype.get("date").getValue()); + query.setParameter("amount", prototype.get("amount").getValue()); + query.setParameter("comment", prototype.get("comment").getValue()); + return (MemberAsset) query.getSingleResult(); + } +} \ No newline at end of file diff --git a/cust-services/src/main/java/de/hsadmin/service/customer/MemberAssetVO.java b/cust-services/src/main/java/de/hsadmin/service/customer/MemberAssetVO.java new file mode 100644 index 0000000..fd4f8bd --- /dev/null +++ b/cust-services/src/main/java/de/hsadmin/service/customer/MemberAssetVO.java @@ -0,0 +1,101 @@ +package de.hsadmin.service.customer; + +import java.math.BigDecimal; +import java.util.Date; + +import de.hsadmin.common.error.TechnicalException; +import de.hsadmin.module.ValueObject; +import de.hsadmin.module.impl.AbstractVO; +import de.hsadmin.module.property.ReadWrite; +import de.hsadmin.module.property.ReadWritePolicy; +import de.hsadmin.module.property.Required; +import de.hsadmin.module.property.Search; +import de.hsadmin.module.property.SearchPolicy; +import de.hsadmin.module.property.mapping.DefaultEnumPersistentObjectMapper; +import de.hsadmin.module.property.mapping.DefaultStringParameterMapMapper; +import de.hsadmin.module.property.mapping.Mapping; +import de.hsadmin.module.property.mapping.ReferredStringPersistentObjectMapper; + +public class MemberAssetVO extends AbstractVO implements ValueObject { + + @Mapping(boMapping=ReferredStringPersistentObjectMapper.class, + rpcMapping=DefaultStringParameterMapMapper.class, + boMappingPath="customer.name") + @ReadWrite(ReadWritePolicy.WRITEONCE) + @Required(true) + @Search(SearchPolicy.EQUALS) + private String customer; + + @Mapping(boMapping=DefaultEnumPersistentObjectMapper.class, + rpcMapping=DefaultStringParameterMapMapper.class, + boMappingPath="customer.name") + @ReadWrite(ReadWritePolicy.WRITEONCE) + @Required(true) + @Search(SearchPolicy.EQUALS) + private String action; + + @ReadWrite(ReadWritePolicy.WRITEONCE) + @Required(true) + @Search(SearchPolicy.COMPARE) + private Date date; + + @ReadWrite(ReadWritePolicy.WRITEONCE) + @Required(true) + @Search(SearchPolicy.COMPARE) + private BigDecimal amount; + + @ReadWrite(ReadWritePolicy.WRITEONCE) + @Required(true) + @Search(SearchPolicy.LIKE) + private String comment; + + public MemberAssetVO() throws TechnicalException { + super(); + } + + public String getCustomer() { + return customer; + } + + public void setCustomer(String customer) { + this.customer = customer; + } + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setQuantity(BigDecimal amount) { + this.amount = amount; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + @Override + public String toString() { + return "MemberShareVO [customer=" + customer + ", action=" + action + ", date=" + date + ", amount=" + + amount + ", comment=" + comment + "]"; + } +}