Day02:

  • 1、 Identifiers

UNIQUE:每行唯一
NOT NULL:
IMMUTABLE:once inserted, can never be changed

  • 2、GenerationType生成值

AUTO(默认):表示持久性提供程序(Hibernate)应选择适当的生成策略
IDENTITY:表示数据库IDENTITY列将用于生成主键值
SEQUENCE:表示数据库序列应用于获取主键值
TABLE:表示应使用数据库表获取主键值

隐式使用UUID策略
@Id
@GeneratedValue( generator = "uuid" )
@GenericGenerator(
name = "uuid",
strategy = "org.hibernate.id.UUIDGenerator",
parameters = {
@Parameter(
name = "uuid_gen_strategy_class",
value = "org.hibernate.id.uuid.CustomVersionOneStrategy"
)
}
)
public UUID id;

  • 3、关系映射

父方:
@OneToMany(mappedBy = "person", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Phone> phones = new ArrayList<>();
@OneToOne(mappedBy = "phone", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private PhoneDetails details;
子方:
@ManyToOne
private Person person;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "phone_id")
private Phone phone;

  • 4、集合

两个实体不能共享同一个集合的引用
集合值属性不支持空值语义(hibernate不区分空集合和空集合引用)

  • 5、NaturalIdLoadAccess 自然编号

API:load()获取对实体的引用(该实体已初始化)
getReference():获取引用
@NaturalId(mutable=true):默认为不可改,mutable=true时可变

  • 5、继承

父实体@MappedSuperclass:在域模型中体现,不在数据库模式中反应,不支持多态查询
single table:@Inheritance(strategy = InheritanceType.SINGLE_TABLE),所有子类映射到同一个数据库表,每个子类必须定义唯一的标识符值,所以查询效率最高,只需单表
Joined table:@Inheritance(strategy = InheritanceType.JOINED)每个类有自己的表,超类表关联关系。该表主键为超类表的外键,该表@PrimaryKeyJoinColumn(name = "account_id")设置外键
Table per class:@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS),各存各的,考虑多态关联,使用union

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 非本人总结的笔记,抄点笔记复习复习。感谢传智博客及黑马程序猿记笔记啊记笔记 持久化类的状态 持久化类三种状态 持久...
    键盘瞎阅读 3,134评论 0 1
  • 指测尊严——红尘执笔速写庙宇的故事 文/清勇卢追 “尊严”是什么?——这是某日某处某小和尚对老和尚的请教。也是老和...
    清勇卢追阅读 2,885评论 0 1
  • 最近常常在梦里遇到那些已经逝去的人,原来潜意识里表现出来的某种渴望,在现实中是无法实现的,所以它以梦这种虚幻的东西...
    果尔家的叮当猫阅读 1,800评论 0 0
  • 每天晚上来到卧室,养成了只要看到床就会觉得很舒服很幸福的感觉,忙碌了一天,终于可以安顿好自己的心了。
    给我一只折耳喵阅读 929评论 0 0
  • 不确定的事情,时有发生。 回想起前两天过关的一幕,还是心有余悸,是否迎来了人生第一次的误机。因为工作缘故,时常出差...
    Alvin_Lcl阅读 1,352评论 0 0