JPA@Entity注释的确切含义是什么?
我正在研究Spring应用程序中的JPA,我对@Entity注释有一些疑问 我有一个这样的模型类:JPA@Entity注释的确切含义是什么?,jpa,annotations,entity,Jpa,Annotations,Entity,我正在研究Spring应用程序中的JPA,我对@Entity注释有一些疑问 我有一个这样的模型类: @Entity @Table(name= “T_CUSTOMER”) public class Customer { @Id @Column(name=“cust_id”) private Long id; @Column(name=“first_name”) private String firstName; @Transient p
@Entity
@Table(name= “T_CUSTOMER”)
public class Customer {
@Id
@Column(name=“cust_id”)
private Long id;
@Column(name=“first_name”)
private String firstName;
@Transient
private User currentUser;
...........................
...........................
...........................
}
好的,我知道@Entity注释位于类级别,这意味着作为此类实例的对象字段将映射到T\u CUSTOMER数据库表的字段
但为什么在JPA中必须使用@Entity注释,而我不能仅使用@Table注释将模型对象映射到特定的数据库表?它有一些其他的意义\行为,而我却没有
我错过了什么?@实体注释的确切含义是什么
@Entity
注释定义类可以映射到表。也就是说,它只是一个标记,比如Serializable
接口
为什么@Entity
注释是强制性的。。。这就是JPA的设计方式。当您创建一个新实体时,您必须至少做两件事
@Entity
@id
@table
注释可以是可选的),表的列是从实体变量派生的(因此,@Column
注释可以是可选的),等等
JPA正试图为想要学习/使用此API的开发人员提供一个快速而简单的开始,并让开发人员选择配置尽可能少的东西以使其功能化,这是此API实现“易于使用/学习”目标的方式之一。因此,
@Entity
注释(与@Id
注释一起)是创建实体所必须做的最低要求。JPA中的实体只不过是表示可以持久保存到数据库的数据的POJO。实体表示存储在数据库中的表。实体的每个实例表示表中的一行
有关实体的更多信息:
表中的
@注释是可选的。那么,如果一个类不存在,JPA如何知道它将被映射到ORM过程中使用呢?@Entity也是可选的,因为您可以在ORM.xml中定义哪些类是实体。如果我们讨论的是类级注释,而在本例中@Entity是mandatory如果“@Entity注释定义了类可以映射到表”,那么为什么他们不直接使用@table!?那就更清楚了@IanVaughan可能认为,这也将支持存储在数据存储中的实体,而数据存储不知道表,例如一些nosql键值存储?网站链接中的好引用。