Maven 3 + Hibernate 3.6 + Oracle 11g Example (Annotation)

来源:互联网 发布:马云关于网络 编辑:程序博客网 时间:2024/05/18 00:22

This tutorial will reuse and modify the previous Hibernate3.6 XML mapping tutorial, but replace the Hibernate mapping file (hbm) with Hibernate / JPA Annotation code.

Technologies in this article :

  • Maven 3.0.3
  • JDK 1.6.0_13
  • Hibernate 3.6.3.final
  • Oracle 11g

1. pom.xml

No change in ·pom.xml· file, all previous Hibernate3.6 XML mapping tutorial dependency can be reused.

Note
Since Hibernate 3.6, the annotation is integrated into the hibernate-core.jar module. In previous version, for example, Hibernate 3.2, you need to include extra hibernate-annotations.jar to make it works.

2. Delete Hibernate Mapping file (hbm)

Delete the “DBUser.hbm.xml” file, it’s no longer require.

3. Update Model

Update “DBUser.java“, puts JPA annotation code inside.

File : DBUser.java

package com.mkyong.user;import java.util.Date;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;import javax.persistence.Temporal;import javax.persistence.TemporalType;@Entity@Table(name = "DBUSER")public class DBUser implements java.io.Serializable {    private int userId;    private String username;    private String createdBy;    private Date createdDate;    public DBUser() {    }    public DBUser(int userId, String username, String createdBy,            Date createdDate) {        this.userId = userId;        this.username = username;        this.createdBy = createdBy;        this.createdDate = createdDate;    }    @Id    @Column(name = "USER_ID", unique = true, nullable = false, precision = 5, scale = 0)    public int getUserId() {        return this.userId;    }    public void setUserId(int userId) {        this.userId = userId;    }    @Column(name = "USERNAME", nullable = false, length = 20)    public String getUsername() {        return this.username;    }    public void setUsername(String username) {        this.username = username;    }    @Column(name = "CREATED_BY", nullable = false, length = 20)    public String getCreatedBy() {        return this.createdBy;    }    public void setCreatedBy(String createdBy) {        this.createdBy = createdBy;    }    @Temporal(TemporalType.DATE)    @Column(name = "CREATED_DATE", nullable = false, length = 7)    public Date getCreatedDate() {        return this.createdDate;    }    public void setCreatedDate(Date createdDate) {        this.createdDate = createdDate;    }}

4. Update Hibernate Configuration File

Update “hibernate.cfg.xml“, replace the “mapping resource” with “mapping class

Update hibernate.cfg.xml, from this :

<hibernate-configuration>  <session-factory>    <!-- ..... -->    <mapping resource="com/mkyong/user/DBUser.hbm.xml"></mapping>  </session-factory></hibernate-configuration>

To this :

<hibernate-configuration>  <session-factory>    <!-- ..... -->    <mapping class="com.mkyong.user.DBUser"></mapping>  </session-factory></hibernate-configuration>

5. Hibernate Utility

No update on “HibernateUtil.java“, since Hibernate 3.6, both XML mapping and annotation are sharing the same “org.hibernate.cfg.Configuration” class.

6. Review Final Project Structure

Review your project structure :

7. Run It

No update on “App.java“, as well, just run it, and you should be seeing the same result as previous Hibernate3.6 XML mapping tutorial.

0 0