基于注解的 Hibernate 配置

Hibernate 注解和 JPA

在 hibernate.cfg.xml 中 把

<mapping resource=
改为
<mapping class="xxxx.XX"

JPA 中注解的应用

基于注解的的对象关系映射

@Entity
@Table
@Id @GenerateValue(strategy=GenerationType.AUTO)
@Temporal(日期相关)
@Temploral(TemporalType.TIMESTMP)
@Basic(普通,不添加也会默认添加为基本属性)
@Basic(fetch=FetchType.EAGER,optional=true)
@Column
@Version(乐观锁)
@Transient(不做关系映射)

大对象的操作 Clob Blob @Lob

@Lob
private Clob content;//mysql 中longtings   oracle Clob 

@Lob
private Blob images;//mysql 中longBlob  oracle Lob

@Version
private int version;

关联映射
一对多 @OneToMany
一对一 @OneToOne
多对多 @ManyToMany

@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name=”外键id”)

@ManyToMany
@JoinTable(name=”third_table”,joinColnums={@JoinColumn(name=”f_id”)},inverseJoinColumn={@JoinColumn(name=”s_id”)})

映射命名查询

(写在实体类中)
@NamedQueries


@NamedQueries({@NameQuery(name=”Account.findById”,query=”from Account where id=:id”)})

@NamedQuery

Query query=session.getNameQuery(“Account.findById”);
query.setInteger(“id”,1);
query.list();

Hibernate 二级缓存的注解

通过注解配置二级缓存

1、导入缓存jar 和配置文件(echache.xml)
2、hibernate.cfg.xml启动缓存
3、实体启动缓存@Cache(usage=CacheConcurrencyStrategy.READ_WRITE )设置缓存策略

有5种可选的缓存方案:
1,CacheConcurrencyStrategy.NONE

  不适用,默认

  2.  CacheConcurrencyStrategy.NONSTRICT_READ_WRITE

  更新不频繁几个小时或更长

  3,CacheConcurrencyStrategy.READ_ONLY

  对于不发生改变的数据使用 [size=large][/size]

  4,CacheConcurrencyStrategy.READ_WRITE

  基于时间戳判定机制,,对于数据同步要求严格的情况,使用频繁

  5,CacheConcurrencyStrategy.TRANSACTIONAL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值