关于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;
}
}
关于onetoone 的2张表关联中间表的策略的更多相关文章
- mysql之表与表关联和表操作
一 表于表之间的关联 foregin key:设置外键表于表之间建立关联. 多对一关联: 创建步骤,应该先创建好被关联的那一张表,然后再去创建关联的那一张表. 关联表的多条对应着被关联的那张表的一条记 ...
- mybatis 框架 的应用之三(操作两张没有关联的表,存在主键和外键关系)
#注意:要配置开启多条语句操作,否则会报错( org.apache.ibatis.exceptions.PersistenceException) lf-driver=com.mysql.jdbc.D ...
- yii2 ActiveRecord多表关联以及多表关联搜索的实现
作者:白狼 出处:http://www.manks.top/yii2_many_ar_relation_search.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明 ...
- yii2表关联实例
yii2表关联 1.两张表关联,以“商品表关联品牌表”为例 控制器中: $goods_model=new Goods(); $goods_info=$goods_model::find()->j ...
- MyBatis学习总结(三)——多表关联查询与动态SQL
在上一章中我们学习了<MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射>,这一章主要是介绍一对一关联查询.一对多关联查询与动态SQL等内容. 一.多表关联查询 表与 ...
- Python-多表关联 外键 级联
分表为什么分表 多表关联多表关系 ****** 表之间的关系 为什么要分表 多对一 一个外键 多对多 一个中间表 两个外键 一对一 一个外键加一个唯一约束外键约束 ****** foreign key ...
- 用SQL数据库做多表关联应怎样设计库结构20170527
http://77857.blog.51cto.com/67857/143872/ 多表关联的话表之间必须得存在关系才行呢,这样建立外键约束就行了, 关系表中插入主表的主键做外键. 假设表1学生表st ...
- Oracle 数据库(oracle Database)Select 多表关联查询方式
Oracle数据库中Select语句语法及介绍 SELECT [ ALL | DISTINCT ] <字段表达式1[,<字段表达式2[,…] FROM <表名1>,<表名 ...
- fastadmin中关联表时A为主表,想让B表和C表关联时怎么办?
$sql = Db::connect('数据库')->table('C表')->where('status', 'normal')->field('字段 别称[不可与其他表重复]') ...
随机推荐
- 1.2 auth2.0
多个应用 入sina qq msn 豆瓣 等 在手机登录时或终端登录时如果统一可以根据硬件做 gettid()-为了保证唯一性:方案一: 事先生成唯一验证码:使用一个isue 设置为1 ...
- 可视化库-Matplotlib-散点图(第四天)
1. 画基本的散点图 plt.scatterdata[:, 0], data[:, 1], marker='o', color='r', label='class1', alpha=0.4) np.r ...
- 改成maven工程
configure->convert to Maven Project
- hibernate查询出的实体,set值后,自动更新到数据库
1.问题症状描述 最近在处理一个新需求问题,代码的大致逻辑是获取一个实体对象,调用该对象的set方法设置其中的某些字段,然后把修改后的实体作为参数供其他地方调用,根据返回值来决定是否更新这个 ...
- java基础一(阅读Head First Java记录)
写在前面的话 在实际应用java中,因为没有系统去看过书或者学习过,所以基础薄弱,刚好这本书是比较入门级的一些书,记录一下下面的一些基本概念,以方便自己来学习.当然如果对大家有帮助也是很好的. 因为书 ...
- 什么是http头信息
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET.POST.PU ...
- Matlab界面清洗
保持干净清爽的编程界面可以给人以简洁明朗的享受,Matlab可以对涉及到的4个界面进行清洗: ① Clear Figure ; ② Clear Command window; ③ Clear Wor ...
- Python操作符重载总结&列表模型
操作符重载 二元运算符 特殊方法 + __add__,__radd__ - __sub__,__rsub__ * __mul__,__rmul__ / __div__,__rdiv__,__trued ...
- liunx 命令大全
一.切换到用户 1.切换到根用户(root) su 2.切换到a用户 su a 二.建立用户,以及mysql的目录1.groupadd mysql #建立一个mysql的组2.useradd -r - ...
- spring mvc 多库连接
最近弄了个spring mvc + hibernate4为框架的项目,其中需用到其他两个库的数据.具体如下: 1.将两库的application文件配置好,需注意的地方是两个事务控制是不一样的. 和 ...