之前我们都是使用配置文件的方式来生成的代码,虽然和JDBC比较简单了很多,但每次都在修改时需要既改实体类又改映射文件。还是有点麻烦。
所以,这一篇,我们来说说使用注解的方式来在接在实体类上配置映射关系。
第一步:新建一个项目,或者把之前项目中的实体类、映射文件,还有hibernate中的mapping标签都删除,然后在DBBrowser中再次生成实体类。如下图:
红框中的选项就表示直接在POJO上以注解的方式加上映射关系。注意括号内的hibernate版本,必须是3.2及以上的才行。
生成后的实体类(Author和Blog)代码我就不复制上来了,内容太多。使用到的注解如下所示:
@Entity @Table(name = "author", catalog = "blogdb")
@Id @GeneratedValue @Column(name = "id", unique = true, nullable = false)
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "author")
@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "author_id")
这些注解就不一一介绍了。主要说明一下映射关系的注解。
cascade属性的值对应有javax.persistence.CascadeType的几个选项。
PERSIST:添加时级联。
MERGE:更新时级联。
REMOVE:删除时级联。
ALL: 所有操作都级联(默认)。
如果你设置为ALL以外的值,你会发现,完全没有级联!!!