关于onetoone 的2张表关联中间表的策略

 

 

 

ProductCategoryVO.java  中间关联表
package com.syscxp.header.billing;

import com.syscxp.header.search.SqlTrigger;
import com.syscxp.header.search.TriggerIndex;
import javax.persistence.*;
import java.sql.Timestamp;

@Table
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@TriggerIndex
@SqlTrigger(foreignVOClass = AccountDiscountVO.class, foreignVOJoinColumn = "uuid")
public class ProductCategoryVO {
    @Id
    @Column
    private String uuid;
    @Column
    @Enumerated(EnumType.STRING)
    private Category code;
    @Column
    private String name;
    @Column
    @Enumerated(EnumType.STRING)
    private ProductType productTypeCode;
    @Column
    private String productTypeName;
    @Column
    private Timestamp createDate;
    @Column
    private Timestamp lastOpDate;

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public Category getCode() {
        return code;
    }

    public void setCode(Category code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public ProductType getProductTypeCode() {
        return productTypeCode;
    }

    public void setProductTypeCode(ProductType productTypeCode) {
        this.productTypeCode = productTypeCode;
    }

    public String getProductTypeName() {
        return productTypeName;
    }

    public void setProductTypeName(String productTypeName) {
        this.productTypeName = productTypeName;
    }

    public Timestamp getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Timestamp createDate) {
        this.createDate = createDate;
    }

    public Timestamp getLastOpDate() {
        return lastOpDate;
    }

    public void setLastOpDate(Timestamp lastOpDate) {
        this.lastOpDate = lastOpDate;
    }
}

 

 

ProductPriceUnitVO  关联ProductCategoryVO的uuid
package com.syscxp.header.billing;

import com.syscxp.header.search.SqlTrigger;
import com.syscxp.header.search.TriggerIndex;

import javax.persistence.*;
import java.sql.Timestamp;

@Entity
@Table
@Inheritance(strategy = InheritanceType.JOINED)
@TriggerIndex
@SqlTrigger
public class ProductPriceUnitVO {

    @Id
    @Column
    private String uuid;

    @Column
    private String productCategoryUuid;

    @Column
    private String areaCode;

    @Column
    private String areaName;

    @Column
    private String lineCode;

    @Column
    private String lineName;

    @Column
    private String configCode;

    @Column
    private String configName;

    @Column
    private int unitPrice;

    @Column
    private Timestamp createDate;

    @Column
    private Timestamp lastOpDate;

    @OneToOne
    @JoinColumn(name="productCategoryUuid",referencedColumnName = "uuid",insertable = false,updatable = false)
    private ProductCategoryVO productCategoryVO;


    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getProductCategoryUuid() {
        return productCategoryUuid;
    }

    public void setProductCategoryUuid(String productCategoryUuid) {
        this.productCategoryUuid = productCategoryUuid;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public String getLineCode() {
        return lineCode;
    }

    public void setLineCode(String lineCode) {
        this.lineCode = lineCode;
    }

    public String getLineName() {
        return lineName;
    }

    public void setLineName(String lineName) {
        this.lineName = lineName;
    }

    public String getConfigCode() {
        return configCode;
    }

    public void setConfigCode(String configCode) {
        this.configCode = configCode;
    }

    public String getConfigName() {
        return configName;
    }

    public void setConfigName(String configName) {
        this.configName = configName;
    }

    public Timestamp getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Timestamp createDate) {
        this.createDate = createDate;
    }

    public Timestamp getLastOpDate() {
        return lastOpDate;
    }

    public void setLastOpDate(Timestamp lastOpDate) {
        this.lastOpDate = lastOpDate;
    }

    public int getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(int unitPrice) {
        this.unitPrice = unitPrice;
    }

    public ProductCategoryVO getProductCategoryVO() {
        return productCategoryVO;
    }

    public void setProductCategoryVO(ProductCategoryVO productCategoryVO) {
        this.productCategoryVO = productCategoryVO;
    }

    @PreUpdate
    void preUpdate() {
        lastOpDate = null;
    }
}

  

AccountDiscountVO关联ProductCategoryVO的uuid
package com.syscxp.header.billing;

import com.syscxp.header.search.SqlTrigger;
import com.syscxp.header.search.TriggerIndex;
import javax.persistence.*;
import java.sql.Timestamp;
@Entity
@Table
@Inheritance(strategy = InheritanceType.JOINED)
@TriggerIndex
@SqlTrigger
public class AccountDiscountVO {
    @Id
    @Column
    private String uuid;
    @Column
    private String accountUuid;
    @Column
    private String productCategoryUuid;
    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumn(name="productCategoryUuid",insertable = false,updatable = false)
    private ProductCategoryVO productCategoryEO;
    @Column
    private int discount;
    @Column
    private Timestamp createDate;
    @Column
    private Timestamp lastOpDate;
    public String getUuid() {
        return uuid;
    }
    public void setUuid(String uuid) {
        this.uuid = uuid;
    }
    public String getAccountUuid() {
        return accountUuid;
    }
    public void setAccountUuid(String accountUuid) {
        this.accountUuid = accountUuid;
    }
    public int getDiscount() {
        return discount;
    }
    public void setDiscount(int discount) {
        this.discount = Math.abs(discount);
    }
    public Timestamp getCreateDate() {
        return createDate;
    }
    public void setCreateDate(Timestamp createDate) {
        this.createDate = createDate;
    }
    public Timestamp getLastOpDate() {
        return lastOpDate;
    }
    @PreUpdate
    void preUpdate() {
        lastOpDate = null;
    }
    public void setLastOpDate(Timestamp lastOpDate) {
        this.lastOpDate = lastOpDate;
    }
    public String getProductCategoryUuid() {
        return productCategoryUuid;
    }
    public void setProductCategoryUuid(String productCategoryUuid) {
        this.productCategoryUuid = productCategoryUuid;
    }
    public ProductCategoryVO getProductCategoryVO() {
        return productCategoryEO;
    }
    public void setProductCategoryVO(ProductCategoryVO productCategoryEO) {
        this.productCategoryEO = productCategoryEO;
    }
}

  

posted @ 2017-11-01 15:33  请叫我刀刀  阅读(717)  评论(0编辑  收藏  举报