gpt4 book ai didi

Java - JPA @Basic 和 @Embedded 注释

转载 作者:IT老高 更新时间:2023-10-28 20:55:12 25 4
gpt4 key购买 nike

我正在从 this tutorial 学习 JPA .

我对以下注释的理解有些困惑:

  • @Basic
  • @Embedded

Fields of an embeddable type default to persistent, as if annotated with @Embedded.

如果可嵌入类型的字段默认为持久化,那我们为什么需要@Embedded注解

最佳答案

@Embeddable 注释允许指定一个类,其实例存储为所属实体的固有部分。此注释没有属性

@Embeddable
public class EmploymentPeriod {
java.util.Date startDate;
java.util.Date endDate;
...
}

@Embedded 注释用于指定实体的持久字段或属性,其值为可嵌入类的实例。默认情况下,@Embeddable 类中指定的列定义适用于拥有实体的表,但您可以使用 @AttributeOverride 覆盖它们:

@Embedded
@AttributeOverrides({
@AttributeOverride(name="startDate", column=@Column(name="EMP_START")),
@AttributeOverride(name="endDate", column=@Column(name="EMP_END"))
})
public EmploymentPeriod getEmploymentPeriod() { ... }

关于可选的@Basic注解,你可以使用它来配置获取类型为LAZY并且配置映射禁止空值(对于非原始类型)带有 optional 属性。

@Basic(fetch=LAZY)
protected String getName() { return name; }

您还可以将其放置在字段或属性上,以明确将其标记为持久性(出于文档目的)。

关于Java - JPA @Basic 和 @Embedded 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2578530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com