hibernate注解ENTITY
2016-10-12 19:44
211 查看
[align=left]
[/align]
[align=left]表名和实体注解:注解为实体,表名[/align]
[align=left]@Entity[/align]
@Table(name =
"cs_ad"
)
[align=left]-----------------------------------------------[/align]
[align=left]字段默认注解@basic[/align]
[align=left]----------------------------------------------[/align]
[align=left]字符串注解 :非空"",最大长度,非null[/align]
[align=left] @NotEmpty [/align]
@Length(max = 200)
@Column(nullable =
false)
[align=left]巨大字符串[/align]
@Lob
[align=left]------------------------------------------------[/align]
[align=left]
[/align]
[align=left]取消持久化[/align]
@Transient
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
示例:
//根据birth计算出age属性
@Transient
public int getAge() {
return getYear(new Date()) - getYear(birth);
}
这个东东还是挺有用的。
验证框架:不能为空,并且满足正则表达式,长度最小和最大值,不可以为null,唯一性,不可以更新
@NotEmpty(groups = Save.
class)
@Pattern(regexp =
"^[0-9a-z_A-Z\\u4e00-\\u9fa5]+$"
)
@Length(min = 2, max = 20)
@Column(nullable =
false, updatable =
false, unique =
true, length = 100)
[align=left]
[/align]
[align=left]------------------------------------------[/align]
[align=left]进行成员JSON映射声明,属于jackson机制[/align]
@JsonAutoDetect
(fieldVisibility = Visibility.NONE,
getterVisibility = Visibility.NONE
, setterVisibility = Visibility.NONE,
isGetterVisibility = Visibility.NONE
, creatorVisibility = Visibility.NONE)
ANY:任何级别的字段都可以自动识别
NONE:所有字段都不可以自动识别
NON_PRIVATE:非private修饰的字段可以自动识别
PROTECTED_AND_PUBLIC:被protected和public修饰的字段可以被自动识别
PUBLIC_ONLY:只有被public修饰的字段才可以被自动识别
DEFAULT:同PUBLIC_ONLY
[align=left]-----------------------------------------------------------------[/align]
[align=left]声明实体监听器:用于实体修改时做处理(切面编程)[/align]
@EntityListeners(EntityListener.
class)
[align=left]---------------------------------------------------------[/align]
[align=left]声明该类为实体父类··不会映射单独的而··而是把字段映射到子类表中[/align]
[align=left]@MappedSuperclass[/align]
[align=left]---------------------------------------------------------------------[/align]
[align=left]@JsonProperty,序列化/反序列化都有效;[/align]
[align=left]@JsonProperty[/align]
[align=left]----------------------------------------------[/align]
4. @DocumentId
用于保证索引实体的单一性。必须存储而且必须不能被分词(相当于加了@Field(store=Store.YES, index=Index.UN_TOKENIZED))
采用JPA方式时,如果指定了@Id则不再需要标注该注解。
@GeneratedValue
(strategy=GenerationType.AUTO)
[align=left]----------------------------------------------------------[/align]
[align=left]主键注解[/align]
/**
[align=left] * 获取ID[/align]
[align=left] *[/align]
*
@return
ID
[align=left] */[/align]
@JsonProperty
@DocumentId
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
[align=left]-------------------------------------------------------------------------------------[/align]
[align=left]数据库索引有关[/align]
@Field(store = Store.YES,
index = Index.
UN_TOKENIZED)
[align=left]------------------------------------------------------------[/align]
[align=left]时间索引,把时间转为字符串再做索引[/align]
@DateBridge
(resolution = Resolution.SECOND)
枚举类型的注解
[align=left] @Enumerated[/align]
@Column(columnDefinition =
"tinyint", nullable =
false)
[align=left]------------------------------------------------------------------------------------[/align]
[align=left]一对一外键关联主键[/align]
@OneToOne(fetch = FetchType.EAGER,
cascade = CascadeType.REMOVE)
@JoinColumn(name
=
"uid", nullable =
false)
boolean类型注解
@Column
(columnDefinition =
"bit", nullable =
false)
[align=left]------------------------------------------------------------------[/align]
[align=left]整型注解[/align]
@Column()
[align=left]-----------------------------------------------[/align]
[align=left]多对一注解[/align]
@ManyToOne(fetch
= FetchType.
EAGER)
@JoinColumn(name =
"credit_level", updatable =
false)
[align=left]-----------------------------------------------------------------------------[/align]
[align=left]
[/align]
[/align]
[align=left]表名和实体注解:注解为实体,表名[/align]
[align=left]@Entity[/align]
@Table(name =
"cs_ad"
)
[align=left]-----------------------------------------------[/align]
[align=left]字段默认注解@basic[/align]
[align=left]----------------------------------------------[/align]
[align=left]字符串注解 :非空"",最大长度,非null[/align]
[align=left] @NotEmpty [/align]
@Length(max = 200)
@Column(nullable =
false)
[align=left]巨大字符串[/align]
@Lob
[align=left]------------------------------------------------[/align]
[align=left]
[/align]
[align=left]取消持久化[/align]
@Transient
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
示例:
//根据birth计算出age属性
@Transient
public int getAge() {
return getYear(new Date()) - getYear(birth);
}
这个东东还是挺有用的。
验证框架:不能为空,并且满足正则表达式,长度最小和最大值,不可以为null,唯一性,不可以更新
@NotEmpty(groups = Save.
class)
@Pattern(regexp =
"^[0-9a-z_A-Z\\u4e00-\\u9fa5]+$"
)
@Length(min = 2, max = 20)
@Column(nullable =
false, updatable =
false, unique =
true, length = 100)
[align=left]
[/align]
[align=left]------------------------------------------[/align]
[align=left]进行成员JSON映射声明,属于jackson机制[/align]
@JsonAutoDetect
(fieldVisibility = Visibility.NONE,
getterVisibility = Visibility.NONE
, setterVisibility = Visibility.NONE,
isGetterVisibility = Visibility.NONE
, creatorVisibility = Visibility.NONE)
jackson的自动检测机制
jackson允许使用任意的构造方法或工厂方法来构造实例使用@JsonAutoDetect(作用在类上)来开启/禁止自动检测
fieldVisibility:字段的可见级别ANY:任何级别的字段都可以自动识别
NONE:所有字段都不可以自动识别
NON_PRIVATE:非private修饰的字段可以自动识别
PROTECTED_AND_PUBLIC:被protected和public修饰的字段可以被自动识别
PUBLIC_ONLY:只有被public修饰的字段才可以被自动识别
DEFAULT:同PUBLIC_ONLY
[align=left]-----------------------------------------------------------------[/align]
[align=left]声明实体监听器:用于实体修改时做处理(切面编程)[/align]
@EntityListeners(EntityListener.
class)
[align=left]---------------------------------------------------------[/align]
[align=left]声明该类为实体父类··不会映射单独的而··而是把字段映射到子类表中[/align]
[align=left]@MappedSuperclass[/align]
[align=left]---------------------------------------------------------------------[/align]
[align=left]@JsonProperty,序列化/反序列化都有效;[/align]
[align=left]@JsonProperty[/align]
[align=left]----------------------------------------------[/align]
4. @DocumentId
用于保证索引实体的单一性。必须存储而且必须不能被分词(相当于加了@Field(store=Store.YES, index=Index.UN_TOKENIZED))
采用JPA方式时,如果指定了@Id则不再需要标注该注解。
@GeneratedValue
(strategy=GenerationType.AUTO)
[align=left]----------------------------------------------------------[/align]
[align=left]主键注解[/align]
/**
[align=left] * 获取ID[/align]
[align=left] *[/align]
*
@return
ID
[align=left] */[/align]
@JsonProperty
@DocumentId
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
[align=left]-------------------------------------------------------------------------------------[/align]
[align=left]数据库索引有关[/align]
@Field(store = Store.YES,
index = Index.
UN_TOKENIZED)
[align=left]------------------------------------------------------------[/align]
[align=left]时间索引,把时间转为字符串再做索引[/align]
@DateBridge
(resolution = Resolution.SECOND)
枚举类型的注解
[align=left] @Enumerated[/align]
@Column(columnDefinition =
"tinyint", nullable =
false)
[align=left]------------------------------------------------------------------------------------[/align]
[align=left]一对一外键关联主键[/align]
@OneToOne(fetch = FetchType.EAGER,
cascade = CascadeType.REMOVE)
@JoinColumn(name
=
"uid", nullable =
false)
boolean类型注解
@Column
(columnDefinition =
"bit", nullable =
false)
[align=left]------------------------------------------------------------------[/align]
[align=left]整型注解[/align]
@Column()
[align=left]-----------------------------------------------[/align]
[align=left]多对一注解[/align]
@ManyToOne(fetch
= FetchType.
EAGER)
@JoinColumn(name =
"credit_level", updatable =
false)
[align=left]-----------------------------------------------------------------------------[/align]
[align=left]
[/align]
相关文章推荐
- Hibernate @Entity注解配置说明
- 01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable
- Hibernate中的@Entity注解
- Spring Hibernate 整合项目案例之@Entity注解
- spring+hibernate开发中关于项目中@Entity注解报错
- 利用hibernate反向生成entity,注解方式
- Hibernate 实体类注解 Entity方式5、@Basic(fetch=FetchType,optional=true) 可选 @Basic表示一个简单的属性到数据库表的字段的映射,对于没有
- hibernate 实体类注解错误:Could not determine type for: com.xxx.entity.Site
- Hibernate的关联关系注解映射(一对一、一对多、多对一、多对多、自连接) 标签: hibernateentity 2016-10-11 16:28 1635人阅读 评论(0) 收藏 举报 分类
- Entity 类中加了@Id 注解后仍然出现org.hibernate.AnnotationException: No identifier specified for entity 错误
- (注解方式持久化类报错解决方案-仅供参考)org.hibernate.MappingException: Unknown entity: com.rx.entity.po.User
- Hibernate @Entity注解配置说明
- Hibernate,JPA注解@Entity
- Hiberante Annotations Entity注解 (org.hibernate.MappingException: Unknown entity常见问题(新手需注意))
- Hibernate @Entity注解配置说明
- Hibernate注解之Entity
- Hibernate @Entity注解配置说明
- Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping com.you.flex.mode
- hibernate注解ID自增长
- Hibernate_04(API注解)