Hibernate5使用註解方式(轉)

用Hibernate5使用映射文件時存在一個問題沒有解決,在映射文件中配置了student_sequence,但找不到映射文件自增加的序列的sequence(Oracle)數據庫。html

輸出的是 Hibernate: select hibernate_sequence.nextval from dualjava

因而使用註解的方式試試,如下是轉載的內容: 1.下載hibernate 2.建立工程,解壓zip包,把hibernate-release-5.2.0.Final\lib\required下全部jar包及數據庫驅動jar包添加到工程lib下。 3.工程src目錄下hibernate.cfg.xml 4.建立POJO類 第一種方式:主鍵採用UUID: @Entity @Table(name="r_user") @NamedQuery(name = "user.byGender", query = "from User where gender = :gender", hints = {@QueryHint(name = "org.hibernate.cacheable", value = "true"), @QueryHint(name = "org.hibernate.cacheRegion", value = "testedCacheRegion"), @QueryHint(name = "org.hibernate.timeout", value = "100"), @QueryHint(name = "org.hibernate.fetchSize", value = "1"), @QueryHint(name = "org.hibernate.flushMode", value = "Commit"), @QueryHint(name = "org.hibernate.cacheMode", value = "NORMAL"), @QueryHint(name = "org.hibernate.comment", value = "Plane by id")}) public class User { @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid",strategy = "uuid") @Column(length = 32,unique = true,nullable = false) private String id; @Column(name="user_name",length = 10,nullable = false) private String userName; @Column(name = "password",length = 15,nullable = false) private String password; @Column(name = "last_login_date",nullable = true,columnDefinition="DATE") private Date lastLoginDate; @Column(name = "register_Date",nullable = true,columnDefinition="DATE") private Date registerDate; @Column(name = "gender",nullable = true,length = 1) private String gender; @Column(name = "age",nullable = true,length = 3,columnDefinition="number") private int age; set/get ...... } 第二種方式:主鍵採用表HIBERNATE_SEQUENCES: import javax.persistence.*; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter; @Entity @Table(name="r_Person") //使用 表HIBERNATE_SEQUENCES @GenericGenerator(name = "mySEQUENCE", strategy = "org.hibernate.id.enhanced.TableGenerator", parameters = { @Parameter(name = "table_name", value = "HIBERNATE_SEQUENCES"), @Parameter(name = "initial_value", value = "1"), @Parameter(name = "increment_size", value = "1"), @Parameter(name = "prefer_entity_table_as_segment_value", value = "true") } ) public class Person { @Id @Column(unique = true,nullable = false,columnDefinition="number") @GeneratedValue(generator = "mySEQUENCE" ) private Long id; @Column(name="name",length = 10,nullable = false) private String name; set/get ... } 第三種方式:採用本身的序列: @Entity @Table(name="r_city") public class City { @Id @Column(unique = true,nullable = false,columnDefinition="number") @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="mySEQUENCE") @SequenceGenerator(name="mySEQUENCE",allocationSize=1,initialValue=1, sequenceName="TEST_SEQUENCE") private Long id; @Column(name="name",length = 10,nullable = false) private String name; set/get . 第四種方式:主鍵採用自增: import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; @Entity @Table(name="r_Car") public class Car { @Id @Column(unique = true,nullable = false,columnDefinition="number") @GeneratedValue(generator="increment") @GenericGenerator(name="increment", strategy = "increment") private long id; @Column(name="name",length = 10,nullable = false) private String name; set/get ... } src下配置hibernate.cfg.xml程序員

 

oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:ORCL *** *** true true update 若是使用表HIBERNATE_SEQUENCES,測試時使用hibernate的sequence,須要將該表創建 create table HIBERNATE_SEQUENCES ( SEQUENCE_NAME VARCHAR2(255) not null, NEXT_VAL NUMBER not null ) 5.開始測試: private static Session session; private static Transaction transaction; private static SessionFactory sessionFactory; static { Configuration configuration = new Configuration().configure(); sessionFactory = configuration.buildSessionFactory(); session = sessionFactory.openSession(); transaction = session.beginTransaction(); } public static void main(String[] args){ try { for(int i=0;i list = session.createQuery("from Job").setFirstResult(0).setMaxResults(5).list(); System.out.println(list); } //測試命名查詢 public static void testNameQuery(){ Query query = session.createNamedQuery("user.byGender"); query.setParameter("gender","M"); System.out.println("aaa:"+query.list()); List resultList = query.getResultList(); System.out.println("bbb:"+resultList); } ------------------------------------------------------------------------------------------------------------------------------------------------- 1.類級別註解 @Entity 映射實體類 @Table 映射數句庫表 @Entity(name="tableName") - 必須,註解將一個類聲明爲一個實體bean。 屬性: name- 可選,對應數據庫中的一個表。若表名與實體類名相同,則能夠省略。 @Table(name="",catalog="",schema="") - 可選,一般和@Entity 配合使用,只能標註在實 體的 class 定義處,表示實體對應的數據庫表的信息。 屬性: name - 可選,表示表的名稱,默認地,表名和實體名稱一致,只有在不一致的狀況下才需 要指定表名 catalog - 可選,表示Catalog名稱,默認爲Catalog(""). schema - 可選 , 表示 Schema 名稱 , 默認爲Schema(""). 2.屬性級別註解 @Id 映射生成主鍵 @Version 定義樂觀鎖 @Column 映射表的列 @Transient 定義暫態屬性 2.1與主鍵相關注解 @Id - 必須,定義了映射到數據庫表的主鍵的屬性,一個實體只能有一個屬性被映射爲主 鍵,置於 getXxxx() 前。 @GeneratedValue(strategy=GenerationType,generator="")- 可選,用於定義主鍵生成策略。 屬性: Strategy -表示主鍵生成策略,取值有: GenerationType.AUTO - 根據底層數據庫自動選擇(默認),若數據庫支持自動增加類型,則爲自動增加。 GenerationType.INDENTITY - 根據數據庫的Identity字段生成,支持DB二、MySQL、 MS、SQLServer、SyBase與HyperanoicSQL數據庫的Identity 類型主鍵。 GenerationType.SEQUENCE - 使用Sequence來決定主鍵的取值,適合Oracle、DB2等支持Sequence的數據庫,通常結合@SequenceGenerator使用。 (Oracle沒有自動增加類型,只能用Sequence) GenerationType.TABLE -使用指定表來決定主鍵取值,結合@TableGenerator使用。 如: @Id @TableGenerator(name="tab_cat_gen",allocationSize=1) @GeneratedValue(Strategy=GenerationType.Table) Generator - 表示主鍵生成器的名稱,這個屬性一般和ORM框架相關, 例如: hibernate 能夠指定 uuid 等主鍵生成方式 @SequenceGenerator — 註解聲明瞭一個數據庫序列。 屬性: name -表示該表主鍵生成策略名稱,它被引用在@GeneratedValue中設置的「gernerator」值中。 sequenceName - 表示生成策略用到的數據庫序列名稱。 initialValue - 表示主鍵初始值,默認爲0. allocationSize -每次主鍵值增長的大小,例如設置成1,則表示每次建立新記錄後自動加1,默認爲50. 示例 : @Id @GeneratedValues(strategy=StrategyType.SEQUENCE) public int getPk() { return pk; } Hibernate的訪問類型爲field時,在字段上進行註解聲; 訪問類型爲property時,在getter方法上進行註釋聲明。 2.2 與非主鍵相關注解 @Version - 能夠在實體bean中使用@Version註解,經過這種方式可添加對樂觀鎖定的支持 @Basic- 用於聲明屬性的存取策略: @Basic(fetch=FetchType.EAGER) 即時獲取(默認的存取策略) @Basic(fetch=FetchType.LAZY) 延遲獲取 @Temporal - 用於定義映射到數據庫的時間精度: @Temporal(TemporalType=DATE) 日期 @Temporal(TemporalType=TIME) 時間 @Temporal(TemporalType=TIMESTAMP)二者兼具 @Column - 可將屬性映射到列,使用該註解來覆蓋默認值,@Column描述了數據庫表中 該字段的詳細定義,這對於根據 JPA 註解生成數據庫表結構的工具很是有做用。 屬性: name - 可選,表示數據庫表中該字段的名稱,默認情形屬性名稱一致 nullable -可選,表示該字段是否容許爲null,默認爲true unique - 可選,表示該字段是不是惟一標識,默認爲 false length - 可選,表示該字段的大小,僅對 String 類型的字段有效,默認值255. insertable -可選,表示在ORM框架執行插入操做時,該字段是否應出現INSETRT 語句中,默認爲true updateable -可選,表示在ORM框架執行更新操做時,該字段是否應該出如今 UPDATE語句中,默認爲true.對於一經建立就不能夠更改的字段,該 屬性很是有用,如對於birthday字段。 columnDefinition - 可選,表示該字段在數據庫中的實際類型。一般ORM框架能夠根 據屬性類型自動判斷數據庫中字段的類型,可是對於Date類型仍沒法肯定數據 庫中字段類型到底是DATE,TIME仍是TIMESTAMP. 此外 ,String的默認映射類型爲VARCHAR,若是要將String 類型映射到特定數據庫的BLOB或TEXT字段類型,該屬性很是有用。 示例 : @Column(name="BIRTH",nullable="false",columnDefinition="DATE") public String getBithday() { return birthday; } @Transient - 可選,表示該屬性並不是一個到數據庫表的字段的映射,ORM框架將忽略該屬性,若是一個屬性並不是數據庫表的字段映射,就務必將其標示爲@Transient,不然ORM框架默認其註解爲 @Basic 示例 : // 根據 birth 計算出 age 屬性 @Transient public int getAge() { return getYear(new Date()) - getYear(birth); } 2.3無註解屬性的默認值 若是屬性爲單一類型,則映射爲@Basic, 不然,若是屬性對應的類型定義了@Embeddable註解,則映射爲@Embedded, 不然,若是屬性對應的類型實現了Serializable,則屬性被映射爲@Basic並在一個列中保存該對象的serialized版本, 不然,若是該屬性的類型爲Java.sql.Clob或java.sql.Blob,則做爲@Lob並映射到適當的LobType.。 3.映射繼承關係 @Inheritance註解來定義所選擇的策略.這個註解須要在每一個類層次結構(class hierarchy) 最頂端的實體類上使用 4.映射實體bean的關聯關係 4.1關聯映射的一些定義 單向一對多:一方有集合屬性,包含多個多方,而多方沒有一方的引用。用戶--->電子郵件 單向多對一:多方有一方的引用,一方沒有多方的引用。論文類別--->類別 雙向一對多:兩邊都有多方的引用,方便查詢。班級--->學生 雙向多對一:兩邊都有多方的引用,方便查詢。 單向多對多:須要一箇中間表來維護兩個實體表。論壇--->文章 單向一對一:數據惟一,數據庫數據也是一對一。艦船--->水手 主鍵相同的一對一:使用同一個主鍵,省掉外鍵關聯。客戶--->地址 單向:關係寫哪邊,就由誰管理。 雙向:通常由多方管理。 @OneToMany(mappedBy="對方")//反向配置,對方管理。 4.2 關聯映射的一些共有屬性 @OneToOne、@OneToMany、@ManyToOne、ManyToMany的共有屬性: fetch - 配置加載方式。取值有 Fetch.EAGER - 及時加載,多對一默認是Fetch.EAGER Fetch.LAZY - 延遲加載,一對多默認是Fetch.LAZY cascade - 設置級聯方式,取值有: CascadeType.PERSIST - 保存 CascadeType.REMOVE - 刪除 CascadeType.MERGE - 修改 CascadeType.REFRESH - 刷新 CascadeType.ALL - 所有 targetEntity - 配置集合屬性類型,如:@OneToMany(targetEntity=Book.class) @JoinColumn - 可選,用於描述一個關聯的字段。 @JoinColumn和@Column相似,介量描述的不是一個簡單字段,而是一個關聯字段,例如描述一個@ManyToOne 的字段。 屬性: name - 該字段的名稱,因爲@JoinColumn描述的是一個關聯字段,如ManyToOne,則默認的名稱由其關聯的實體決定。 例如,實體 Order 有一個user 屬性來關聯實體 User, 則 Order 的 user 屬性爲一個外鍵 , 其默認的名稱爲實體User的名稱+ 下劃線 + 實體User的主鍵名稱 4.3 一對一關聯 @OneToOne–表示一個一對一的映射 1.主表類A與從表類B的主鍵值相對應。 主表:@OneToOne(cascade= CascadeType.ALL) @PrimaryKeyJoinColumn public B getB(){ Returnb; } 從表:無 2.主表A中有一個從表屬性是B類型的b 主表:@OneToOne(cascade = CascadeType.ALL) @JoinColumn(name="主表外鍵") //這裏指定的是數據庫中的外鍵字段。 publicB getB(){ return b; } 從表:無 3.主表A中有一個從表屬性是B類型的b,同時,從表B中有一個主表屬性是A類型的a 主表:@OneToOne(cascade = CascadeType.ALL) @JoinColumn(name="主表外鍵") //這裏指定的是數據庫中的外鍵字段。 publicB getB(){ return b; } 從表:@OneToOne(mappedBy= "主表類中的從表屬性") public主表類get主表類(){ return 主表對象 } 注意:@JoinColumn是可選的。默認值是從表變量名+"_"+從表的主鍵(注意,這裏加的是主鍵。而不是主鍵對應的變量)。 4.4 多對一關聯 @ManyToOne - 表示一個多對一的映射,該註解標註的屬性一般是數據庫表的外鍵。 1.單向多對一:多方有一方的引用,一方沒有多方的引用。 在多方 @ManyToOne(targetEntity=XXXX.class) //指定關聯對象 @JoinColumn(name="") //指定產生的外鍵字段名 2.雙向多對一:配置方式同雙向一對多。 示例 : // 訂單 Order 和用戶 User 是一個 ManyToOne 的關係 // 在 Order 類中定義 @ManyToOne() @JoinColumn(name="USER") public User getUser() { return user; } 4.5 一對多關聯 @OneToMany - 描述一個一對多的關聯,該屬性應該爲集合類型,在數據庫中並無實際字段。 1.單向一對多:一方有集合屬性,包含多個多方,而多方沒有一方的引用。 @OneToMany 默認會使用鏈接表作一對多關聯 添加@JoinColumn(name="xxx_id") 後,就會使用外鍵關聯,而不使用鏈接表了。 2.雙向一對多 1)在多方 @ManyToOne @JoinColumn(name="本身的數據庫外鍵列名") 2)在一方 @OneToMany(mappedBy="多端的關聯屬性名") @JoinColumn(name="對方的數據庫外鍵列名") 4.6 多對多關聯 @ManyToMany - 可選,描述一個多對多的關聯。 屬性: targetEntity - 表示多對多關聯的另外一個實體類的全名,例如:package.Book.class mappedBy - 用在雙向關聯中,把關係的維護權翻轉。 1.單向多對多關聯: 在主控方加入@ManyToMany註解便可。 2.雙向多對多關聯: 兩個實體間互相關聯的屬性必須標記爲@ManyToMany,並相互指定targetEntity屬性。有且只有一個實體的@ManyToMany註解須要指定mappedBy屬性,指向targetEntity的集合屬性名稱。 [From:blog_935ebb670101dnre.html] @Entity,註冊在類頭上,將一個類聲明爲一個實體bean(即一個持久化POJO類) 。 @Table,註冊在類頭上,註解聲明瞭該實體bean映射指定的表(table)。 @Id用來註冊主屬性,@GeneratedValue用來註冊主屬性的生成策略,@Column用來註冊屬性,@Version用來註冊樂觀鎖,@Transient用來註冊不是屬性。 以上的@Id、@GeneratedValue、 @Column 、@Version,能夠用來註冊屬性,既能夠寫在Java類的屬性上,也能夠註冊在屬性對應的getter上。 @Transient註冊在多餘的屬性或多餘的getter上,可是必須與以上的@Column等對應。 @Column 標識屬性對應的字段,示例:@Column(name=「userName") @Column( name="columnName"; (1) booleanunique() defaultfalse; (2) booleannullable() defaulttrue; (3) booleaninsertable() defaulttrue; (4) booleanupdatable() defaulttrue; (5) StringcolumnDefinition() default""; (6) Stringtable() default""; (7) int length()default255; (8) intprecision() default 0; // decimalprecision (9) int scale()default 0; // decimalscale (10) (1) name 可選,列名(默認值是屬性名) (2) unique 可選,是否在該列上設置惟一約束(默認值false) (3) nullable 可選,是否設置該列的值能夠爲空(默認值false) (4) insertable 可選,該列是否做爲生成的insert語句中的一個列(默認值true) (5) updatable 可選,該列是否做爲生成的update語句中的一個列(默認值true) (6) columnDefinition 可選: 爲這個特定列覆蓋SQL DDL片斷(這可能致使沒法在不一樣數據庫間移植) (7) table 可選,定義對應的表(默認爲主表) (8) length 可選,列長度(默認值255) (8) precision 可選,列十進制精度(decimal precision)(默認值0) (10) scale 可選,若是列十進制數值範圍(decimal scale)可用,在此設置(默認值0) @Id,標識這個屬性是實體類的惟一識別的值。 注意:這個註解只能標註單一列構成的主鍵,如tbl_grade那種有兩個字段組成的聯合主鍵由其餘註解標識。 回憶*.hbm.xml: "uuid"> "assigned"/> @Id,只是標識這個屬性是主鍵,可是並無指出其生成策略,如上例中的assigned就是由程序員指定的生成策略。 若是僅僅寫出@Id,便是使用assigned生成略,如: @Id @Column private int uuid; 若是想使用Oracle支持的sequence取主鍵,必須經過@GeneratedValue來指定生成策略,而由@SequenceGenerator指定如何使用sequence。 @Id @Column @GeneratedValue( strategy = GenerationType.SEQUENCE,//使用sequence生成主鍵 generator =「generator「//引用下面名爲gernator的生成策略 ) @SequenceGenerator( name = 「generator」,//定義名爲generator的生成策略 allocationSize = 1,//每次sequence加1 name=「seq_a」//引用名爲seq_a的sequence ) private int uuid; @Version 標識這個屬性用來映射樂觀鎖的version @Transient 標識這個屬性不用持久化 @Embeddable【小對象的頭上】 標識實體中能夠定義一個嵌入式組件(embeddedcomponent)。組件類必須在類一級定義@Embeddable註解。 @Embedded【大對象的屬性頭上】 引用定義的小對象。 @Embeddable【小對象的頭上】 標識實體中能夠定義一個嵌入式組件(embeddedcomponent)。組件類必須在類一級定義@Embeddable註解。 注意:若是這個小對象做爲複合主鍵,必定要實現Serializable接口。這並非註解決定的,而是Hibernate的主鍵都須要實現Serializable接口。 @EmbeddedId 【大對象的屬性頭上】 引用定義的小對象做爲主鍵。 注意:不須要再使用@Id註解。 [html] view plain copy print?在CODE上查看代碼片派生到個人代碼片 @Id @GeneratedValue(strategy = GenerationType.AUTO)//主鍵默認策略(由底層數據庫決定主鍵策略) public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @ManyToMany( //targetEntity配置集合屬性類型 targetEntity=cn.com.goevent.omms.bean.CompanyInfo.class, //fetch 加載方式,延遲加載 fetch=FetchType.LAZY) //關聯表 @JoinTable( name="exhibition_user",//關聯表表名 (exhibition_user爲多對多關係維護數據表) joinColumns={@JoinColumn(name="exhibition_id")},//維護端外鍵 inverseJoinColumns={@JoinColumn(name="userid")})//被維護端外鍵 @Id @GeneratedValue(strategy = GenerationType.AUTO)//主鍵默認策略(由底層數據庫決定主鍵策略) public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @ManyToMany( //targetEntity配置集合屬性類型 targetEntity=cn.com.goevent.omms.bean.CompanyInfo.class, //fetch 加載方式,延遲加載 fetch=FetchType.LAZY) //關聯表 @JoinTable( name="exhibition_user",//關聯表表名 (exhibition_user爲多對多關係維護數據表) joinColumns={@JoinColumn(name="exhibition_id")},//維護端外鍵 inverseJoinColumns={@JoinColumn(name="userid")})//被維護端外鍵 XML的配置 主1【tbl_product】: 從1【tbl_product_info】: product【引用本身的Java屬性名】 註解的配置 主1【tbl_product】: @OneToOne(cascade=CascadeType.ALL) @PrimaryKeyJoinColumn private ProductInfoModel info; 從1【tbl_product_info】: @Id @Column @GeneratedValue(generator=「copy【引用生成策略】") @GenericGenerator(name=「copy【定義生成策略】」,strategy=「foreign【寫死,使用外來策略】」,parameters=@Parameter(name=「property」,value=「product【引用本身的Java屬性】")) private int uuid; @OneToOne(mappedBy=「info【引用對方的Java屬性】") private ProductModel product; 標準的1:M XML的配置 1【tbl_parent】: 多【tbl_child】: 註解的配置 1【tbl_parent】: @OneToMany @JoinColumn(name="puuid【對方的數據庫外鍵列名】") private Set children = new HashSet(); 多【tbl_child】: @ManyToOne @JoinColumn(name="puuid【本身的數據庫外鍵列名】") private ParentModel parent; 主1【tbl_product】: " cascade="all"/> 從1【tbl_product_info】: true【寫死】"/> 註解的配置 主1【tbl_product】: @OneToOne(cascade=CascadeType.ALL,mappedBy=「product【對方的Java類屬性名】") private ProductInfoModel info; 從1【tbl_product_info】: @OneToOne @JoinColumn(name=「puuid【本身的數據庫外鍵列名】") private ProductModel product; Hibernate4註解方法 XML的配置 1【tbl_parent】: class=「cn.javass.model.d.ChildModel【對方的Java類名】"/> 註解的配置 1【tbl_parent】: @OneToMany(mappedBy="parent【對方的Java類屬性名 】") private Set children = new HashSet(); 多【tbl_child】: @ManyToOne @JoinTable( name=「tbl_parent_child【聯接表】", joinColumns=@JoinColumn(name="cuuid【聯接表裏表明本身的數據庫字段名】"), inverseJoinColumns=@JoinColumn(name="puuid【聯接表裏表明對方的數據庫字段名】") ) private ParentModel parent; Hibernate4註解方法 XML的配置 1【tbl_product】: 註解的配置 1【tbl_product】: @ManyToOne @JoinTable( name=" tbl_product_relation 【聯接表】", joinColumns=@JoinColumn(name="suuid【聯接表裏表明本身的列名】"), inverseJoinColumns=@JoinColumn(name="cuuid【聯接表裏表明對方的列名】",unique=true【寫死】) ) private CourseModel course; 錯誤一 錯誤信息:javax.persistence.Table.indexes([Ljavax/persistence/Index 緣由:Hibernate4.3不支持@table(name="tablename") 解決方案:使用@entity(name="tablename")代替@table(name="tablename") 錯誤二 錯誤信息:javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey 緣由:Hibernate4.3在多對一映射的時候不能使用@JoinColumn 解決方案:只寫@ManyToOne 錯誤三 錯誤信息:javax.persistence.OneToMany.orphanRemoval()Z 緣由:javaee、ejb或junit的jar包與hibernate-jpa-2.0-api-1.0.0.Final.jar衝突 解決方案:查看是否存在以上jar包,若是存在,去掉便可 ----------------------------------------------------------------------------- 自動生成的id爲負數: 工做中使用到了oracle12的版本,使用hibernate5保存時發現生成的結果除了1正常其他的都從-49開始往上加, 數據庫自身查詢是沒有問題的。 跟蹤hibernate5的源碼發現@SequenceGenerator還須要配置一個allocationSize=1才能正常 如 @SequenceGenerator(name="UMS_USER_SEQ", sequenceName="UMS_USER_SEQ",allocationSize = 1) 相關源碼在org.hibernate.id.enhanced.PooledOptimizer#generate ---------------------------------------------------------------------------------------------------------------- 四月 07, 2017 3:33:23 下午 org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.1.1.Final} 四月 07, 2017 3:33:23 下午 org.hibernate.cfg.Environment INFO: HHH000206: hibernate.properties not found 四月 07, 2017 3:33:23 下午 org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist 四月 07, 2017 3:33:23 下午 org.hibernate.annotations.common.reflection.java.JavaReflectionManager INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 四月 07, 2017 3:33:23 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 四月 07, 2017 3:33:23 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [oracle.jdbc.OracleDriver] at URL [XXXXXXXXXXXXXXXXXXXXXXXXXXX] 四月 07, 2017 3:33:23 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=AISC, password=****} 四月 07, 2017 3:33:23 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false 四月 07, 2017 3:33:23 下午 org.hibernate.engine.jdbc.connections.internal.PooledConnections INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 四月 07, 2017 3:33:24 下午 org.hibernate.dialect.Dialect INFO: HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect Hibernate: select STUDENT_SEQUENCE.nextval from dual Hibernate: insert into STUDENT (age, name, id) values (?, ?, ?) A record is insertedsql

相關文章
相關標籤/搜索