JPA注解—-第1章类级别注解

一、前提

这文章的前提需要了解编写的jpa测试用例。请参考文章:JPA测试用例

二、详细步骤

@Entity注解

@Entity:映射实体类

@Entity(name=”tableName”)

name:可选,对应数据库表中的一个表。若标明与实体类名相同,则可以省略。

注意:使用@Entity时必须指定实体类的主键属性。

默认的情况下,数据库会生成一个实体类的小写表名字。如实体类Students_Entity会生成students_entity 。

 

在hibernate.cfg.xml文件中添加:

 

@Table注解

@Table(name=””,schema=””,catalog=””)

@Entity配合使用,只能标注在实体类class定义处,表示实体对应的数据库表的信息。

name:可选,映射表的名称,默认表名和实体名称一致,只有在不一致的情况下才需要制定表名。

catalog:可选,表示catalog名称,默认为catalog(“”)

schema:可选,表示schema名称,默认为schema(“”)

注意不同的数据库厂商,支持不同的字段,以下是其区别:

 

如果没有定义@Table,那么系统自动使用默认值:实体的短类名(不附带包名)。

@Table元素包括了一个schema 和一个 catalog属性,如果需要可以指定相应的值.。结合使用@UniqueConstraint注解可以定义表的唯一约束(unique constraint) 。

默认的情况跟Entity一样。可以注明表名字。

添加指定name,schema属性:

 

@Embeddable注解

表示一个嵌入类,这个类的对象在另外一个类中充当属性

添加一个地址类 Address:

 

学生类 Students_Embeddable :

 

 

发现数据库表中的字段统一在students_embeddable表中生成。

 

 

 


如果您认为本教程质量不错,读后觉得收获很大,预期工资能蹭蹭蹭的往上涨,那么不妨小额赞助我一下,让我有动力继续写出高质量的教程。

发布者

souvc

souvc

搜你所想,投你所好。

发表评论