Hibernate Annotation使用实例
jar说明? hibernate 3.3.0? hibernate-annotations(3.4.0.CR2)
?
数据库(oracle)结构
CREATE TABLE KANG_USER
(
? ID??????? VARCHAR2(32 BYTE)?????????????????? NOT NULL,
? USERNAME? VARCHAR2(30 BYTE),
? PASSWORD? VARCHAR2(32 BYTE),
? CITY????? VARCHAR2(32 BYTE),
? ADDTIME?? DATE
)
?
CREATE TABLE KANG_CITY
(
? ID??????? VARCHAR2(32 BYTE),
? CITYNAME? VARCHAR2(20 BYTE)
)
一个用户表,一个城市表,用户和城市是多对一的关系
?
import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToMany;import javax.persistence.Table;import org.hibernate.annotations.Cache;import org.hibernate.annotations.CacheConcurrencyStrategy;import org.hibernate.annotations.Cascade;import org.hibernate.annotations.CascadeType;import org.hibernate.annotations.GenericGenerator;/** * @author yukang * */@Entity@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)@Table(name="KANG_CITY")public class City { @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") private String id; private String cityName; @OneToMany(mappedBy="city",fetch=FetchType.EAGER) @Cascade(value={CascadeType.DELETE_ORPHAN})//级联删除 private Set<User> userSet; public City() { } /** * @return the id */ public String getId() { return id; } /** * @param id the id to set */ public void setId(String id) { this.id = id; } /** * @return the cityName */ public String getCityName() { return cityName; } /** * @param cityName the cityName to set */ public void setCityName(String cityName) { this.cityName = cityName; } /** * @return the userSet */ public Set<User> getUserSet() { return userSet; } public void addUser(User user) { if ( userSet == null ) { userSet = new HashSet<User>(); } user.setCity(this); userSet.add( user ); }}
?
Spring中的sessionFactory的class要更改为org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean这个class
?
hibernate.cfg.xml要把User和City这两个class加上去
<mapping class="com.xxxx.domain.pojo.User"/>
?<mapping class="com.xxxx.domain.pojo.City"/>
?
其他的地方以前怎么写的,现在不要改动,例子较简单,代码不做说明了