Hibernate中使用註解
Annotation在專案中的使用越來越多,同樣hibernate中支援Annotation,如果在hibernate中使用註解,從而輕XML配置,從下面簡單的小例子加以說明。
1、實體類Emp.java
2、hibernate.cfg.xml檔案package com.yy.hibernate.model; import javax.persistence.Entity; import javax.persistence.Id; @Entity // 實體類 public class Emp { private int id; private String name; @Id // 主鍵 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3、客戶端<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory > <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/hibernate</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">true</property> <!-- <property name="hibernate.hbm2ddl.auto">update</property> --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <mapping class="com.yy.hibernate.model.Emp"/> <!--使用註解--> </session-factory> </hibernate-configuration>
注意:public class EmpTest { public static void main(String[] args) { //使用註解 Configuration config = new AnnotationConfiguration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Emp emp = new Emp(); emp.setId(11); emp.setName("yy"); try{ session.beginTransaction(); session.save(emp); session.getTransaction().commit(); }catch(Exception e){ session.getTransaction().rollback(); }finally{ session.close(); factory.close(); } } }
在該簡單示例中,實體類和資料庫表是對應的,欄位也是統一的。
如果表名和實體類不一致,則需加如下註解:
@Table(name="_emp")
如果資料庫表中欄位名和實體類中欄位名保持相同,預設在getXXX方法上加如下註解:
@Basic
如果資料庫表中欄位名和實體類中欄位名不一致,則需在getXXX方法上加如下註解:
@Column(name="_name")
public String getName() {
return name;
}
如果某個欄位不想持久化,則則getXXX方法上加如下註解:
@Transient
public String getName() {
return name;
}
對應的,如果在XML配置中不想持久化,則需要在hbm.xml檔案中不配置該欄位即可。如果是列舉型別,則需要在getXXX方法上加如下註解:
@Enumerated(EnumType.ORDINAL)
public Level getLevel() {
return level;
}
此時EnumType.ORDINAL對映欄位為整形,如果為EnumType.STRING則對映為varchar型別。相關推薦
Hibernate中的一對一註解配置
before code uil ransac ges package open cnblogs 一對一 Card類 package cn.OneToOne2017109.entity; import javax.persistence.*; /** * Creat
Hibernate中,mappedBy和註解@JoinColumn的對比
mappedBy 我們知道,mappedBy用於指定具有雙向關係的兩個實體中。哪個實體是被關聯處理的。它有如下四個特點: 1.只有OneToOne,OneToMany,ManyToMany上才有mappedBy屬性,ManyToOne不存在該屬性; [email
關於hibernate中@Transient註解使用的一點心得
(例): @Transient表示該屬性並非一個到資料庫表的欄位的對映,ORM框架將忽略該屬性. 如果一個屬性並非資料庫表的欄位對映,就務必將其標示為@Transient,否則,ORM框架預設其
Hibernate JPA中註解解釋 @Json Jackson常用
一般情況下使用JSON只使用了java物件與字串的轉換,但是,開發APP時候,我們經常使用實體類來做轉換;這樣,就需要用到註解; Jackson預設是針對get方法來生成JSON字串的,可以使用註解來做一些特殊用途;常見的使用如下: 1、@Transient 對
hibernate中實體類註解
一、JPA通用策略生成器 通過annotation來對映hibernate實體的,基於annotation的hibernate主鍵標識為@Id, 其生成規則由@GeneratedValue設定的.這裡的@id和@GeneratedValue都是JPA的標準用法, JPA提供四種標準用法,由
Hibernate中pojo註解介紹
原文地址:http://blog.sina.com.cn/s/blog_8d8425f301014dls.html 1.設定Pojo為實體 [email protected] //標識這個pojo是一個jpa實體 02.public class Use
Hibernate中使用註解
Annotation在專案中的使用越來越多,同樣hibernate中支援Annotation,如果在hibernate中使用註解,從而輕XML配置,從下面簡單的小例子加以說明。 1、實體類Emp.java package com.yy.hibernate.model;
hibernate中如何用Annotion註解設定model中的欄位不持久化
public final static int DELETESTATUS_YES=1; public final static int DELETESTATUS_NO=0; @Id @GeneratedValue(
Hibernate中使用@Lob 註解儲存String[] 問題
Hibernate中使用@Lob 註解儲存String[] 問題在Hibernate註解中如何你想儲存一個欄位為String陣列型別,如果你想嘗試儲存為clob型別的話,一般情況下為定義為:@Entit
Hibernate中使用JPA註解@OneToMany的cascade級聯標籤
Parent-Child關係 在介紹級聯標籤之前要說一下@OneToOne、@OneToMany、@ManyToOne、@ManyToMany的父子關係(或者母子關係T.T)。 @OneToOne和@ManyToMany中:可自行選擇 @OneToMany
註解解決Hibernate中should be mapped with insert="false" updatable=false
參考:http://blog.sina.com.cn/s/blog_6829be5c01016pjj.html 在使用註解時,會遇到雙向一對多和多對一問題: 例如order與orderitem: 在order中: /* * @OneToMany: 指明Or
hibernate中設定欄位不持久化 註解
hibernate中Modle中的有些屬性不想建立表是在資料庫中產生欄位儲存資料,當這種需求是我們可以設定@transient表示透明的當設定此屬性是在建立資料庫是可以對此屬性忽略,在本例中模擬了一個班級表表名為MyClass 屬性有資料庫id 班級名稱 班級老師 老師
Hibernate中使用JPA(註解)配置物件關係對映
java中註解也是一大特點,平時進行單元測試時我們用過@Test註解進行測試 JPA就是java專門針對持久層框架進行設計的一套規範 JPA:Java Persistence API,其實它也就是一堆介面,就想JDBC一樣,不同的框架只要遵循這同一套規範就可以在java環境
Hibernate中的五大核心類和接口
session 回滾 開啟事務 核心 避免 事務 提交 jdbc 一級緩存 Hibernate中的五大核心類和接口 Configuration(類) : 加載配置文件hibernate.cfg.xml文件中的配置信息,從而得到: 1).hibernate的
Hibernate中的條件查詢完畢類
hiberna 產生 content div ber ont size 查詢 criteria Hibernate中的條件查詢有下面三個類完畢: 1、Criteria:代表一次查詢 2、Criterion:代表一個查詢條件 3、Restrictions:產生
(七)Hibernate中使用JDBC
alt work 方法 代碼 cep cti 一個 sdm admin 在hibernate中獲取connection數據庫連接有兩種方法:(操作數據庫常用這種方法) 1. session.doReturningWork 返回一個對象,適用於查詢方法 2. ses
(十二)Hibernate中的多表操作(1):單向多對一
art 保存 int gen round t對象 情況 映射文件 拋出異常 由“多”方可知“一”方的信息,比如多個員工使用同一棟公寓,員工可以知道公寓的信息,而公寓無法知道員工的信息。 案例一: pojo類 public class Department {
hibernate中hql語句中list和iterate區別
每次 hibernate 寫入 所有 讀取 條件 iter 查詢 hql 1.使用list()方法獲取查詢結果,每次發出一條語句,獲取全部數據。2.使用iterate()方法獲取查詢結果,先發出一條SQL語句用來查詢滿足條件數據的id,然後依次按照這些id查詢記錄,也就是要
Hibernate中get()和load()的區別
factory all htm on() 被調用 容易 transacti rip con Hibernate中根據Id單條查詢獲取對象的方式有兩種,分別是get()和load(),來看一下這兩種方式的區別。 1. get() 使用get()來根據ID進行單條查詢:
(十四)Hibernate中的多表操作(4):單向一對一
odin utf-8 lds () clas string 方式 rdb style 案例一: 註解方式實現一對一 UserBean.java package bean; import java.io.Serializable; import javax.pers