在Myeclipse中添加hibernate到插件,用自己的jia包,
hibernate3.2新特征:
1.可以不用bhm.xml文件可以直接使用实体类配置类与表,属性与列的映射关系
2.添加数据库对应的实体映射文件,删除.bhm.xml的文件,
3.(注意这个)当用到annotation时,不同再用Configuration而是AnnotationConfiguration在hibernate.cfg.xml或是spring的配置文件中
4.添加hibernate的模板xml(文件名为annotationTemplates.xml)
5.在one一边不再是一个Set集合,而是范型List<arg> names=new ArrayList<arg>(0);
在many这边有一个one的属性 private Customer customer(); getter & setter
下面是一些注意点
实体类对应表名的注解
例:
@Entity
@Table(name = "buy")\\注意:这个buy指的是数据库中的表名
public class Buy
{
**
}
在主键的get方法前添加主键注解:
例:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getBuyId()
{
return this.buyId;
}
onetomany的注解(一对多) 在buy.class中(从表)
例:
//mappedBy的值在buy中必须有,通过mappedBy的值找到外键列
/*
* 通过customer找buy
* 通过mapping已说明buy表的外键列
* 通过customer取buy
*在one这边有一个many的List<OneClassName>的集合,在many这边有一个one的属性
*
* select * from Buy where 通过mappedBy值找到外键列=customer主键值
* */
@OneToMany(mappedBy="customer",fetch =FetchType.LAZY)//这个customer是many里面的one属性
@OrderBy(value = "buyId ASC") //many的排序方式
public List<Buy> getBuies()
{
return this.buies;
}
manytoone的注解(多对一) 在customer.class中(主表)
例:
@ManyToOne(cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "userId") //这个userId是one一边对应数据库中的主键名
public Users getUsers()
{
return this.users;
}