Hibernate 注解

总结一些最近在实体类中用到的Hibernate注解,

用自己的话加以解释,有可能不标准,仅供参考

日后还会补充:


实体类注解:@Entity

实体类映射到数据库表@Table()

以Json格式保存到表:@JsonIgnoreProperties(ignoreUnknown=true)

例:

@Entity 
@Table(name = "projects")
@JsonIgnoreProperties(ignoreUnknown=true)
public class Project  {

}

Id标示:@Id
列自增:@GeneratedValue

这两个注解我一般成对使用

例:

@Id
@GeneratedValue
public Integer getId() {
	return id;
}



一对一映射:@OneToOne

一对多映射:@OneToMany(fetch = FetchType.LAZY, mappedBy = "project")

例:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "project")
	public List<FundDetail> getFundDetails() {
		return this.fundDetails;
	}


多对一映射:@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "city_id", nullable = false)

例:

@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "category_id", nullable = false)
	@JsonIgnore//
	public ProjectCategory getProjectCategory() {
		return this.projectCategory;
	}

注意:有的时候Json格式保存的属性一对多映射会引起栈溢出所以加上注解@JsonIgnore

详情见:StackOverflowError栈溢出错误

@Column

属性映射到列:@Column()

例:

@Column(name="user_qq")
public String getUserQQ() {
	return this.userQQ;
}


(1)

name 可选,列名(默认值是属性名)

(2)

unique 可选,是否在该列上设置唯一约束(默认值false)

(3)

nullable 可选,是否设置该列的值可以为空(默认值false)

(4)

insertable 可选,该列是否作为生成的insert语句中的一个列(默认值true)

(5)

updatable 可选,该列是否作为生成的update语句中的一个列(默认值true)

(6)

columnDefinition 可选: 为这个特定列覆盖SQL DDL片段 (这可能导致无法在不同数据库间移植)

(7)

table 可选,定义对应的表(默认为主表)

(8)

length 可选,列长度(默认值255)

(8)

precision 可选,列十进制精度(decimal precision)(默认值0)

(10)

scale 可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)

@Transient这个用的不是太好.我的理解是不映射到数据表中

例:

@Transient
String getLengthInMeter() {
	...
}


还有一个要说的是:注解不一定一定加载get方法前,也可以直接加到属性前.

先写这么多,日后补充.

参考文档:http://docs.jboss.org/hibernate/annotations/3.4/reference/zh_cn/html_single/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值