2017-01-11 5 views
1

я мог бы помочь, я добавляю атрибут в сущности, но я понятия не имею, как отнести его к соответствующей таблицеКак отобразить атрибут Java в спящий режим

Часть кода

import javax.persistence.*; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

@Entity 
public class TransactionByFop 
     extends BaseTransaction 
{ 
    @ManyToOne 
    private Transaction transaction; 

    private int reject; 

    //transbank context: TBK_ID_TRANSACCION; CAT context: IdCarro 
    private Long internalTransactionId; 

    //transbank context: TBK_TIPO_PAGO; CAT context: no es usado dejar en blanco 
    private String internalPaymentType; 

    //transbank context: TBK_NUMERO_CUOTAS; CAT context: NumeroCuotas 
    private Integer installmentsNumber; 

    //transbank context: no es usado dejar en blanco; CAT context: MontoCuota 
    private Double installmentsAmount; 

    //transbank context: TBK_FECHA_TRANSACCION; CAT context: FechaHoraAutorizacion 
    private Date authDate; 

    //transbank context: TBK_FINAL_NUMERO_TARJETA; CAT context: corresponde al número completo de la tarjeta si la transacción fué autorizada sin el password de seguridad, de lo contrario dejarlo en blanco. 
    private String creditCardNumber; 

    //transbank context: no es usado dejar en blanco; CAT context: Esta información no es explícita, pero puede ser deducida basada en alguna información 
    private Boolean catSecureKeyFlag; 

    //transbank context: no es usado dejar en blanco; CAT context: Viene basado en si el cliente está usando la clave de seguridad de lo contrario se deja en blanco 
    private String catCustomerRUT; 

    private String currency; 

    private Double discountedAmount; 

    public Transaction getTransaction() 
    { 
     return transaction; 
    } 

    public void setTransaction(Transaction transaction) 
    { 
     this.transaction = transaction; 
    } 

    public int getReject() 
    { 
     return reject; 
    } 

    public void setReject(int reject) 
    { 
     this.reject = reject; 
    } 

    public Long getInternalTransactionId() 
    { 
     return internalTransactionId; 
    } 

    public void setInternalTransactionId(Long internalTransactionId) 
    { 
     this.internalTransactionId = internalTransactionId; 
    } 

    public String getInternalPaymentType() 
    { 
     return internalPaymentType; 
    } 

    public void setInternalPaymentType(String internalPaymentType) 
    { 
     this.internalPaymentType = internalPaymentType; 
    } 

    public Double getDiscountedAmount() { 
     return discountedAmount; 
    } 

    public void setDiscountedAmount(Double discountedAmount) { 
     this.discountedAmount = discountedAmount; 
    } 


    public Integer getInstallmentsNumber() 
    { 
     return installmentsNumber; 
    } 

    public void setInstallmentsNumber(Integer installmentsNumber) 
    { 
     this.installmentsNumber = installmentsNumber; 
    } 

    public Double getInstallmentsAmount() 
    { 
     return installmentsAmount; 
    } 

    public void setInstallmentsAmount(Double installmentsAmount) 
    { 
     this.installmentsAmount = installmentsAmount; 
    } 

    public Date getAuthDate() 
    { 
     return authDate; 
    } 

    public void setAuthDate(Date authDate) 
    { 
     this.authDate = authDate; 
    } 

    public String getCreditCardNumber() 
    { 
     return creditCardNumber; 
    } 

    public void setCreditCardNumber(String creditCardNumber) 
    { 
     this.creditCardNumber = creditCardNumber; 
    } 

    public Boolean getCatSecureKeyFlag() 
    { 
     return catSecureKeyFlag; 
    } 

    public void setCatSecureKeyFlag(Boolean catSecureKeyFlag) 
    { 
     this.catSecureKeyFlag = catSecureKeyFlag; 
    } 

    public String getCatCustomerRUT() 
    { 
     return catCustomerRUT; 
    } 

    public void setCatCustomerRUT(String catCustomerRUT) 
    { 
     this.catCustomerRUT = catCustomerRUT; 
    } 

    public String getCurrency() { 
     return currency; 
    } 

    public void setCurrency(String currency) { 
     this.currency = currency; 
    } 

    public String getAuthDateFormatted() 
    { 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
     String stringDate = null; 
     if (null != this.authDate) 
      stringDate = sdf.format(this.authDate); 
     return stringDate; 
    } 

    public String getInstallmentsNumberFmt() 
    { 
     if (null == this.installmentsNumber || this.installmentsNumber == 0) 
      return "00"; 
     String installments = this.installmentsNumber.toString(); 
     if (installments.length() == 1) 
      return "0" + installments; 
     return installments; 
    } 

    public String getInstallmentsAmountFmt() 
    { 
     if (null != this.installmentsAmount) 
      return this.installmentsAmount.toString(); 
     return ""; 
    } 

    public String getCatSecureKeyFlagFmt() 
    { 
     if (null != catSecureKeyFlag) 
      return catSecureKeyFlag.toString(); 
     return null; 
    } 

    @Override 
    public String toString() 
    { 
     return "[ id (" + id + ") : amount(" + amount + 
       ") : id_fop(" + (fop == null 
           ? "" 
           : fop.getId()) + ") : " + 
       ") : last_update=(" + lastUpdate + ") : " + 
       ") : settled(" + settled + ") : settled_amount(" + settledAmount + 
       ") : id_status(" + (status == null 
            ? "" 
            : status.getId()) + ")]"; 
    } 
} 

два новые атрибуты валютный и discountedAmount

унаследованного класса

@MappedSuperclass 
public abstract class BaseTransaction 
    extends DomainEntityId 
{ 
    private static final Logger logger = LoggerFactory.getLogger(BaseTransaction.class); 

    private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); 

    // ------------ Atributos de clase ------------- 

    @Temporal(TemporalType.TIMESTAMP) 
    @Column(updatable = false) 
    protected Date created; 

    @Temporal(TemporalType.TIMESTAMP) 
    protected Date lastUpdate; 

    protected double amount; 

    protected boolean settled; 

    protected double settledAmount; 

    @ManyToOne 
    protected FOP fop; 

    @ManyToOne 
    protected TransactionStatus status; 

    protected String internalStatus; 

    @Column(length = 1024) 
    protected String internalDescription; 

    protected String authorizationCode; 

    // --------- metodos con logica de negocio --------- 
    //TODO: delete this method as it should use DAO for better use in unit test 
    public void setStatusRef(int status) 
    { 
     setStatus(JPA.em().getReference(TransactionStatus.class, status)); 
    } 

    public boolean isAnyStatus(SupportedTransactionStatus... statuses) 
    { 
     if (status == null) 
     { 
      return false; 
     } 
     for (SupportedTransactionStatus s : statuses) 
     { 
      if (status.getId() == s.id()) 
      { 
       return true; 
      } 
     } 
     return false; 
    } 

    public boolean isStatus(SupportedTransactionStatus status) 
    { 
     return this.status != null && this.status.getId() == status.id(); 
    } 

    public void approvePayment() 
    { 
     if (!isStatus(Approved)) 
     { 
      logger.warn(MessageFormat.format(
       "Transaction [{0}] with FOP [{1}] was approved [{2}] with previous status [{3}]", 
       id, fop.getId(), Approved.name(), status.getId())); 
     } 
     setStatusRef(Approved.id()); 
    } 

    public void rejectPayment() 
    { 
     if (!isStatus(Rejected)) 
     { 
      logger.warn(MessageFormat.format(
       "Transaction [{0}] with FOP [{1}] was rejected [{2}] with previous status [{3}]", 
       id, fop.getId(), Rejected.name(), status.getId())); 
     } 
     setStatusRef(Rejected.id()); 
    } 

    public void forceRejectPayment() 
    { 
     if (!isStatus(ForcedRejection)) 
     { 
      logger.warn(MessageFormat.format(
       "Transaction [{0}] with FOP [{1}] was rejected [{2}] with previous status [{3}]", 
       id, fop.getId(), ForcedRejection.name(), status.getId())); 
     } 
     setStatusRef(ForcedRejection.id()); 
    } 

    public boolean isClosed() 
    { 
     return isAnyStatus(Approved, Rejected); 
    } 

    // -------- hooks y triggers ----------------------- 

    @PrePersist 
    public void prePersist() 
    { 
     created = new Date(); 
     lastUpdate = created; 
    } 

    public void persist() 
    { 
     setStatusRef(NoFop.id()); 
     JPA.em().persist(this); 
    } 

    public void merge() 
    { 
     setStatusRef(NoFop.id()); 
     JPA.em().merge(this); 
    } 

    @PreUpdate 
    public void preUpdate() 
    { 
     lastUpdate = new Date(); 
    } 

    //region getters and setters 
    public FOP getFop() 
    { 
     return fop; 
    } 

    public void setFop(FOP fop) 
    { 
     this.fop = fop; 
    } 

    public double getAmount() 
    { 
     return amount; 
    } 

    public String getAmountFmt() 
    { 
     return String.valueOf("$" + amount); 
    } 

    public void setAmount(double amount) 
    { 
     this.amount = amount; 
    } 

    public TransactionStatus getStatus() 
    { 
     return status; 
    } 

    public void setStatus(TransactionStatus status) 
    { 
     this.status = status; 
    } 

    public int getSettledInt() 
    { 
     return settled 
      ? 1 
      : 0; 
    } 

    public boolean isSettled() 
    { 
     return settled; 
    } 

    public void setSettled(boolean settled) 
    { 
     this.settled = settled; 
    } 

    public double getSettledAmount() 
    { 
     return settledAmount; 
    } 

    public String getSettledAmountFmt() 
    { 
     return String.valueOf("$" + settledAmount); 
    } 

    public void setSettledAmount(double settledAmount) 
    { 
     this.settledAmount = settledAmount; 
    } 

    public String getInternalStatus() 
    { 
     return internalStatus; 
    }  

    public void setInternalStatus(String internalStatus) 
    { 
     this.internalStatus = internalStatus; 
    } 

    public String getInternalDescription() 
    { 
     return internalDescription; 
    } 

    public void setInternalDescription(String internalDescription) 
    { 
     this.internalDescription = internalDescription; 
    } 

    public String getAuthorizationCode() 
    { 
     return authorizationCode; 
    } 

    public void setAuthorizationCode(String authorizationCode) 
    { 
     this.authorizationCode = authorizationCode; 
    } 

    public String getCreatedFmt() 
    { 
     return DATE_FORMAT.format(created); 
    } 
    //endregion 
} 
+0

Вы имеете в виду таблицу, в которой вы не предоставляете DDL? и представлены ли эти поля в таблице? –

ответ

0

Использование @Table аннотация для отображения сущности с таблицей. В этой аннотации вы должны указать имя таблицы. И используйте @Column аннотация, чтобы указать имя столбца для атрибута. Вы должны дать @Column для каждого атрибута и указать название столбца.

import javax.persistence.*; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

@Entity 
@Table(name = "table_name") 
public class TransactionByFop 
     extends BaseTransaction 
{ 
    @ManyToOne 
    private Transaction transaction; 


    private int reject; 

    //transbank context: TBK_ID_TRANSACCION; CAT context: IdCarro 
    @Column(name = "column_name") 
    private Long internalTransactionId; 

    //transbank context: TBK_TIPO_PAGO; CAT context: no es usado dejar en blanco 
    @Column(name = "column_name") 
    private String internalPaymentType; 

    //transbank context: TBK_NUMERO_CUOTAS; CAT context: NumeroCuotas 
    @Column(name = "column_name") 
    private Integer installmentsNumber; 

    //transbank context: no es usado dejar en blanco; CAT context: MontoCuota 
    @Column(name = "column_name") 
    private Double installmentsAmount; 

    //transbank context: TBK_FECHA_TRANSACCION; CAT context: FechaHoraAutorizacion 
    @Column(name = "column_name") 
    private Date authDate; 

    //transbank context: TBK_FINAL_NUMERO_TARJETA; CAT context: corresponde al número completo de la tarjeta si la transacción fué autorizada sin el password de seguridad, de lo contrario dejarlo en blanco. 
    @Column(name = "column_name") 
    private String creditCardNumber; 

    //transbank context: no es usado dejar en blanco; CAT context: Esta información no es explícita, pero puede ser deducida basada en alguna información 
    @Column(name = "column_name") 
    private Boolean catSecureKeyFlag; 

    //transbank context: no es usado dejar en blanco; CAT context: Viene basado en si el cliente está usando la clave de seguridad de lo contrario se deja en blanco 
    private String catCustomerRUT; 

    private String currency; 

    private Double discountedAmount; 

    public Transaction getTransaction() 
    { 
     return transaction; 
    } 

    public void setTransaction(Transaction transaction) 
    { 
     this.transaction = transaction; 
    } 

    public int getReject() 
    { 
     return reject; 
    } 

    public void setReject(int reject) 
    { 
     this.reject = reject; 
    } 

    public Long getInternalTransactionId() 
    { 
     return internalTransactionId; 
    } 

    public void setInternalTransactionId(Long internalTransactionId) 
    { 
     this.internalTransactionId = internalTransactionId; 
    } 

    public String getInternalPaymentType() 
    { 
     return internalPaymentType; 
    } 

    public void setInternalPaymentType(String internalPaymentType) 
    { 
     this.internalPaymentType = internalPaymentType; 
    } 

    public Double getDiscountedAmount() { 
     return discountedAmount; 
    } 

    public void setDiscountedAmount(Double discountedAmount) { 
     this.discountedAmount = discountedAmount; 
    } 


    public Integer getInstallmentsNumber() 
    { 
     return installmentsNumber; 
    } 

    public void setInstallmentsNumber(Integer installmentsNumber) 
    { 
     this.installmentsNumber = installmentsNumber; 
    } 

    public Double getInstallmentsAmount() 
    { 
     return installmentsAmount; 
    } 

    public void setInstallmentsAmount(Double installmentsAmount) 
    { 
     this.installmentsAmount = installmentsAmount; 
    } 

    public Date getAuthDate() 
    { 
     return authDate; 
    } 

    public void setAuthDate(Date authDate) 
    { 
     this.authDate = authDate; 
    } 

    public String getCreditCardNumber() 
    { 
     return creditCardNumber; 
    } 

    public void setCreditCardNumber(String creditCardNumber) 
    { 
     this.creditCardNumber = creditCardNumber; 
    } 

    public Boolean getCatSecureKeyFlag() 
    { 
     return catSecureKeyFlag; 
    } 

    public void setCatSecureKeyFlag(Boolean catSecureKeyFlag) 
    { 
     this.catSecureKeyFlag = catSecureKeyFlag; 
    } 

    public String getCatCustomerRUT() 
    { 
     return catCustomerRUT; 
    } 

    public void setCatCustomerRUT(String catCustomerRUT) 
    { 
     this.catCustomerRUT = catCustomerRUT; 
    } 

    public String getCurrency() { 
     return currency; 
    } 

    public void setCurrency(String currency) { 
     this.currency = currency; 
    } 

    public String getAuthDateFormatted() 
    { 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
     String stringDate = null; 
     if (null != this.authDate) 
      stringDate = sdf.format(this.authDate); 
     return stringDate; 
    } 

    public String getInstallmentsNumberFmt() 
    { 
     if (null == this.installmentsNumber || this.installmentsNumber == 0) 
      return "00"; 
     String installments = this.installmentsNumber.toString(); 
     if (installments.length() == 1) 
      return "0" + installments; 
     return installments; 
    } 

    public String getInstallmentsAmountFmt() 
    { 
     if (null != this.installmentsAmount) 
      return this.installmentsAmount.toString(); 
     return ""; 
    } 

    public String getCatSecureKeyFlagFmt() 
    { 
     if (null != catSecureKeyFlag) 
      return catSecureKeyFlag.toString(); 
     return null; 
    } 

    @Override 
    public String toString() 
    { 
     return "[ id (" + id + ") : amount(" + amount + 
       ") : id_fop(" + (fop == null 
           ? "" 
           : fop.getId()) + ") : " + 
       ") : last_update=(" + lastUpdate + ") : " + 
       ") : settled(" + settled + ") : settled_amount(" + settledAmount + 
       ") : id_status(" + (status == null 
            ? "" 
            : status.getId()) + ")]"; 
    } 
} 

Для получения дополнительной информации, пожалуйста, обращайтесь к hibernate annotations.

Смежные вопросы