关于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('字段 别称[不可与其他表重复]') ...
随机推荐
- Cascade属性的取值
Cascade属性的取值有:1.none:忽略其他关联的对象,默认值.2.save-update:当session通过save(),update(),saveOrUpdate()方法来保存或更新对象时 ...
- iOS 通过URL网络获取XML数据的两种方式
转载于:http://blog.csdn.net/crayondeng/article/details/8738768 下面简单介绍如何通过url获取xml的两种方式. 第一种方式相对简单,使用NSD ...
- docker国内registry
cat /etc/docker/daemon.json {"registry-mirrors": ["http://4d6b2eb7.m.daocloud.io" ...
- Type Object——类型对象
clr会为应用程序使用的每个类型创建一个内部数据结构,这种数据结构称为类型对象. 具有泛型类型参数的类型称为开放类型(open type),CLR禁止构造开放类型的任何实例. 代码引用一个泛型类型时, ...
- Shrio02 Realm作用、自定义简洁Realm、Realm实现类使用
1 Realm简介 1.1 Realm作用 shiro最终是通过Realm获取安全数据的(如用户.角色.权限),也就是说认证或者授权都会通过Realm进行数据操作 1.2 Realm接口 1.2.1 ...
- Java程序设计11——GUI设计与事件处理B
4 Java事件模型的流程 为了使图形界面能够接收用户的操作,必须给各个组件加上事件处理机制. 在事件处理的过程中,主要涉及3类对象: 1.Event Source(事件源):事件发生的场所,通常就是 ...
- Android 实现在Activity中操作刷新另外一个Activity数据列表
做android项目中遇到这样一个问题:有两个acticity,一个显示好友列表,另外一个显示会话列表,现在问题是在会话界面增加一个添加好友功能,添加好友后要求实时的刷新好友列表. 想了想,找了两种方 ...
- 【转】java.sql.SQLException: statement is closed语句被关闭 druid连接池报错
我之前在用druid 1.0.28版本也出现过这个问题, 现象就是: 报这个错的时候, 往往会出现在一条毫无错误的sql执行上报错, sql放到数据库上执行或者单独拎出来执行完全没问题, 但是为什么 ...
- dojo学习(一)入门
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- Swift:使用CAShapeLayer打造一个ProgresssBar
ProgressBar是一个很小却在很多地方都会用到的东西.也许是网络连接,也许APP本身有很多东西需要加载的.默认的只有一个旋转的菊花,对于打造一款个性的APP这显然是不够的.这里就使用CAShap ...