Decoration6:改数据结构为继承的关系
2024-09-04 11:06:36
一个家装市场有各种登录的角色:设计师、业主……
这些角色有一些共同的字段,例如passWord,userName,age等等,但是分别又有自己的一些特殊字段,例如设计师要写自己的设计经历,业主可能要有自己的楼号等等。这在数据库设计上符合主扩展模式,也就是分成主表和扩展表,主表包含基本的信息,若干扩展表继承了主表的字段,同时增加了自己的独特字段。
这样所有用户的主键都遵循同一个序列,子表的外键关联主表的主键,也是自己的主键。
在JAP上,设计User实体为抽象的父级实体,Desing、Owner两个实体继承自User,这里有个知识点:JPA的映射策略,这里不在展开说,Internet上一搜一大把。我这里只应用InheritanceType.JOINED类型的继承关系。
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
……
} @Entity
public class Owner extends User {
private int buildNum;
……
}
可见子表Owner默认增加了一列ID作为键值使用
最新文章
- 收集一些关于OI/ACM的奇怪的东西……
- 利用node构建本地服务
- EditText根据焦点弹出软键盘
- BSGS算法_Baby steps giant steps算法(无扩展)详解
- Oracle学习整理
- spring MVC的困惑--url-pattern的/和/*有区别
- Oracle基础(八) 数据完整性
- Android端手机测试体系
- ACM——A + B Problem (2)
- HDU 1502 Regular Words DP+高精度
- Scala学习笔记--Akka
- docker基础入门之二
- Java 内部类和匿名内部类
- 打印zigzag矩阵
- RabbitMQ入门-消息派发那些事儿
- Python-Django-BMS-增删改查
- xcode8 iOS函数返回值使用警告
- 浅析python日志重复输出问题
- java工具类 获取包下所有类
- Java的transient关键字(转)
热门文章
- C++ Tr1中的正則表達式
- [Android UI] listview 自定义style
- c++ 哈希表(hash表)
- Mahout构建图书推荐系统【一起学Mahout】
- SpringMVC之HandlerMethodArgumentResolver和<;mvc:argument-resolvers>;
- 织梦(DEDE)CMS V5.3 覆盖任意变量导致远程包含漏洞
- Resin install document
- C#-MessageBox全部函数重载形式及举例
- webuploader解决不能重复上传问题及一些常见问题处理
- 《java 语言程序设计》第3、4章编程练习