閱讀60 返回首頁    go 技術社區[雲棲]


第十章 基於Annotation的關係映射 前期準備

1、使用MyEclipse生成基於Annotation的實體類與映射

這個過程隻和第三章所說的的內容基本相同。這是其中有兩個地方得注意的。

第三章的內容:https://blog.csdn.net/p_3er/article/details/8965305


注意一:
         在通過MyEclipse給項目增加Hibernate功能的時候。我們必須勾上Enable Hibernate Annotations Support。否則在通過MyEclipse生成基於Annotation的實體類時會無法使用這項功能。




注意二:
        通過MyEclipse生成實體類和映射的時候,應該選第二項生成基於Annotation的實體類,而不是之前的帶.hbm.xml映射文件的實體類。





2、一個簡單的Annotation的實體類
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
 * @Entity 表示下麵的這個User是一個實體類
 * @Table 表示映射到數據表中的表名,其中的name參數表示"表名稱"
 * @Id 表示主鍵Id,一般放在getXXX前麵
 */
@Entity
@Table(name = "user", catalog = "hibernate")
public class User implements java.io.Serializable {
	private Integer id;
	private String username;

	public User() {
	}

	@Id
	@GeneratedValue
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "username", nullable = false, length = 45)
	public String getUsername() {
		return this.username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}


3、Annotation的ID生成策略

使用@GeneratedValue(strategy=GenerationType)注解可以定義該標識符的生成策略

Strategy有四個值:

                            AUTO- 可以是identitycolumn類型,或者sequence類型或者table類型,取決於不同的底層數據庫.

相當於native


TABLE- 使用表保存id

原理:就是在數據庫中建立一個表,這個表包含兩個字段,一個字段表示名稱,另一個字段表示值。每次在添加數據時,使用第一個字段的名稱,來取值作為添加數據的ID,然後再給這個值累加一個值再次存入數據庫,以便下次取出使用。


IDENTITY- identity column


SEQUENCE- sequence


注意:auto是默認值,也就是說沒有後麵的參數則表示為auto



4hibernate.cfg.xml中配置Annotation的實體類

如果是通過MyEclipse生成的實體類的話,這個配置是由工具自動加載到配置文件中的。
<mapping  />


5AnnotationConfiguration

        Annotation方式。在初始化Configuation時,應使用AnnoationConfiguration。這隻是用於Application或才測試的時候。如果是Web項目我們還有其它的做法,如整合Spring來使用Spring提供的工具類來調用Hibernate的Api會更加方便。這個我們在說Spring的時候會說到。

  Configuration cfg = new AnnotationConfiguration();
		cfg.configure();
		SessionFactory sessionFactory = cfg.buildSessionFactory();






最後更新:2017-04-03 18:52:11

  上一篇:go Android刪除相冊得最近拍得一張圖片
  下一篇:go MediaStore 與Media.EXTERNAL_CONTENT_URI