@Entity(name="")
必须,作为实体使用.
name,可选,对应数据库中的一个表.
@Table(name="",catalog="',schema="")
可选,通常配合@Entity使用,职能标注在实体的Class定义外,表示实体对应的数据库表信息.
name:可选表示,表示表的名称.默认的情况下,表名和实体名称是一致的,只有不一致的情况下才需要指定表名.
catalog:可选,表示Catalog名称,默认是Catalog("").
schema:可选,表示Schema名称,默认为Schema("").
@Id
必须
id定义了映射到数据库的主键属性,一个实体只能有一个属性被映射为主键,放置于getXxx()前.
@GeneratedValue(strategy=generationType,generator="")
可选,strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE和TABLE四中,分别表示让ORM框架自动选择.
根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,已有根据一个额外的表生成主键,默认AUTO
generator:表示主键生成器的名称,这个属性通常和ORM框架相关,Hibernate可以指定uuid等主键生成方式
示例:
@Basic(fetch=FetchType,optional=true)
可选,表示一个简单的属性到数据库表的字段的映射,对于任何没有标注getXxx()的方法,默认为@Basic
fetch:表示改属性的加载策略,有EAGER和LAZY两种,分别表示抓取和延迟加载,默认为EAGER.
optional:表示这个属性是否可以为null,默认为true.
@Column
可选,描述了数据库表中该字段的详细定义
name:表示数据库表中该字段的名称.
nullable:表示该字段是否允许为null,默认为true.
unique:表示该字段是否唯一表示,默认为false
length:表示该字段的长度.只对String有用
insertable:表示在ORM框架执行插入操作的时候,该字段是否出现INSERT语句中,默认为true
updateable:表示ORM框架执行更新操作时,该字段是否出现在UPDATE语句中,默认为true,对于一经创建就不可更改的字段,该字段非常有用,
columnDefinition:通常该字段在数据库中的实际类型,通常ORM框架可以根据属性类型自动判断数据库中字段的类型,但是对于Date类型仍无法确定数据库中字段是DATE,TIME还是DATETIME,此外,String的默认映射类型为VARCHAR,如果要将,String映射到BLOB或者TEXT字段这个属性非常有用
示例
领取专属 10元无门槛券
私享最新 技术干货