关于onetoone 的2张表关联中间表的策略
2017-11-01 15:33
309 查看
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; } }
相关文章推荐
- 关于hibernate中映射中有many to one等外键关联时的问题
- 关于为什么单向一对多(one-to-many)要使用关联表的再思考
- 关于hibernate中双向外键关联one-to-one的property-ref=的问题
- hiberante通过中间关联one-to-one更新实体时的奇怪现象
- 关于hibernate中双向外键关联one-to-one的property-ref=的问题
- 关于hibernate中双向外键关联one-to-one的property-ref=的问题
- 关于hibernate中双向外键关联one-to-one的property-ref=的问题(转)
- 关于thinkphp关联模型的HAS_ONE
- Hibernate中的Entity类之间的OneToOne关联
- NHibernate的关联映射(one-to-one,one-to-many,many-to-many)以及cascade分析
- hibernate---->一对一关联映射 (one-to-one)
- hibernate学习4之one-to-many单向关联(不推荐)
- hibernate one-to-one 表关联解决方案
- Hibernate OneToOne关联
- 012一对一 唯一外键关联映射_双向(one-to-one)
- many-to-one单向关联映射
- Hibernate一对一 外键关联映射(one-to-one)
- Hibernate关系映射 一对一双向外键关联@OneToOne Annotation方式
- Hibernate基础:一对一单/双向,主/外键关联 @OneToOne@JoinColumn
- 关于如何实现在整合struts2和hibernate4框架下实现many-to-one级联数据表在JSP页面中的输出