Java 为什么我们需要用@Entity注释POJO
我从JPA开始,我有一个问题,为什么我们需要用Java 为什么我们需要用@Entity注释POJO,java,jakarta-ee,jpa,Java,Jakarta Ee,Jpa,我从JPA开始,我有一个问题,为什么我们需要用@Entity注释这个类。我之所以考虑这样做,唯一的原因是自动生成工具可以看到它是一个实体,如果需要,可以在数据库中创建一个相应的表 public class Book { //Fields } vs 我知道如果我尝试使用entitymanager持久化etc,第一个代码片段将抛出异常……但我想知道为什么我们首先要添加@Entity。JPA实现需要知道哪些类要持久化/持久化(根据JPA规范)。但是你不需要注释任何东西。。。您可以使用orm.
@Entity
注释这个类。我之所以考虑这样做,唯一的原因是自动生成工具可以看到它是一个实体,如果需要,可以在数据库中创建一个相应的表
public class Book {
//Fields
}
vs
我知道如果我尝试使用entitymanager持久化etc,第一个代码片段将抛出异常……但我想知道为什么我们首先要添加
@Entity
。JPA实现需要知道哪些类要持久化/持久化(根据JPA规范)。但是你不需要注释任何东西。。。您可以使用orm.xml定义什么是可持久的。来自Java持久性API常见问题解答:
Java持久性API是用于对象/关系映射的POJO持久性API。它包含一个完整的对象/关系映射规范,支持使用Java语言元数据注释和/或XML描述符来定义Java对象和关系数据库之间的映射
public class Book {
//Fields
}
拥有一个@Entity
注释就是向Pojo添加元数据(配置)。另一种方法是让它实现特定的接口和/或xml配置。但是注释更接近实际代码,可以由Java编译器检查
您可以在这里阅读更多信息:。我想John会问这个问题,因为我们用@Entity(@Id等)之外的其他注释来注释POJO。问题是,如果类被注释,JPA实现可以检查并进入该类以获取其余的映射,而不是遍历项目中的所有类以尝试扫描不存在的元数据 这只是我的想法,我可能是正确的,也可能不是正确的,所以…:-D