Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我们需要用@Entity注释POJO_Java_Jakarta Ee_Jpa - Fatal编程技术网

Java 为什么我们需要用@Entity注释POJO

Java 为什么我们需要用@Entity注释POJO,java,jakarta-ee,jpa,Java,Jakarta Ee,Jpa,我从JPA开始,我有一个问题,为什么我们需要用@Entity注释这个类。我之所以考虑这样做,唯一的原因是自动生成工具可以看到它是一个实体,如果需要,可以在数据库中创建一个相应的表 public class Book { //Fields } vs 我知道如果我尝试使用entitymanager持久化etc,第一个代码片段将抛出异常……但我想知道为什么我们首先要添加@Entity。JPA实现需要知道哪些类要持久化/持久化(根据JPA规范)。但是你不需要注释任何东西。。。您可以使用orm.

我从JPA开始,我有一个问题,为什么我们需要用
@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