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