了解常用注解:
@Entity
@Id
@Table
@GeneratedValue
@Transient
@Column
采用如下注解会默认采用数据库的主键生成能力,相当于hibernate中的native
@GeneratedValue相当于@GeneratedValue(strategy=GenerationType.AUTO)
了解如何采用hibernate的uuid生成主键
package com.hjc.hibernate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name="t_user1")
public class User1 {
private int id;
private String name;
private int age;
@Id
//采用数据库自增方式生成主键
//@GeneratedValue(strategy=GenerationType.AUTO)
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="user_name", length=30, nullable=false, unique=true)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//年龄不持久化
@Transient
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.hjc.hibernate;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="t_user2")
public class User2 {
private int id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
package com.hjc.hibernate;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="t_user3")
public class User3 {
private int id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Id
@GeneratedValue(strategy=GenerationType.TABLE)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
package com.hjc.hibernate;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="t_user4")
public class User4 {
private String id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//采用hibernate uuid生成器
@Id
@GenericGenerator(name="myIdGenerator",strategy="uuid")
@GeneratedValue(generator="myIdGenerator")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
public void testSave1() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
User1 user = new User1();
user.setName("李四11");
session.save(user);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
public void testSave2() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
User2 user = new User2();
user.setName("李四");
session.save(user);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
public void testSave3() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
User3 user = new User3();
user.setName("张三");
session.save(user);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
public void testSave4() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
User4 user = new User4();
user.setName("张三");
session.save(user);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
分享到:
相关推荐
学习hibernate必读,包括JPA2新特征和JPA2映射的神秘之旅两个pdf。
感觉JPA关联映射实现感觉比Hibernate配置文件的关联映射几乎一样,只是引入了“零配置”这个概念。劣者自己在做一个东西的时候用到了关联映射,在此将它做一个总结。留给自己回顾用。
hibernate的中关系映射分为一对一、一对多、多对一、多对多,其中有单双向之分。而一对一还有主键和外键区分。一共是九种。分别用xml配置文件和annotation实现。annotation的版本没有写测试程序,见谅。
JPA2映射的神秘之旅,介绍JPA的标准规范以及注解声明的使用,对已如何做一对多,多对一有详细的说明!
CRUD-HibernateJPA JPA: Java Persistence API是标准的Java语言API,它描述了数据持久性框架的通用接口。 JPA是Java规范,指示应如何实现ORM框架。 创建它是为了使这些解决方案标准化。 Hibernate: Hibernate是一...
刚学完了hibernate和ejb,自己又自学了下jpa,看了黎活明老师的视频,自己做了个多对多的例子,希望可以对你学习有所帮助,有心人可以联系我QQ770256061!
冬眠 什么是Hibernate Hibernate是一个Java ORM框架。 ORM是对象关系映射的缩写,它将Java世界中的对象与关系数据库世界中的记录相关联。 Hibernate是开源的。...Hibernate是JPA的先驱框架,但它也符合JPA
用SpringBoot + Spring Data JPA操作数据库 项目启动的时候 报了一个错 SpringBoot的版本是2.2.6.RELEASE org.springframework.beans.factory.BeanCreationException: Error creating bean with name '...
HibernateJPA_InheritanceSingleTable
JPA和Hibernate的关系,JPA:Java Persistence APIJPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
Crud-JPA-Hibernate 基本使用hibernate来映射和连接表和数据库的应用程序。
jpa复杂查询,映射到具体的DTO上就比较复杂,需要类型完全匹配,还要求要建造构造函数,而且只能使用jpql查询,非常麻烦,querydsl也不方便,代码太长,后期维护的时候看上去也不直观。复杂sql还是采用原生sql比较...
关于Hibernate的基本知识,有关关联映射,二级缓存,一对多,多对一,HQL查询等等.
hibernate核心,一对多,多对多映射讲解,看了就完全搞明白了
使用MySql示例的带有Hibernate的Spring Data JPA 该项目使用MySql Example描述了带有Spring Data JPA和Hibernate的Spring Boot示例。 描述 该项目显示了存储在MySql数据库中的用户列表。 使用以下端点,可以实现...
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...
在Hibernate中使用注解,主要是为了替代映射文件,完成“类到表,属性到字段”的映射。 JPA提供了一套功能强大的注解。Hibernate直接使用了JPA的这套注解。当然,对于JPA中的一些不足,Hibernate又开发了一些自己的...
示例应用程序演示了如何将Hibernate用作Spring Data JPA的JPA提供程序。 当前演示了以下概念: 概念 描述 看 Spring Data JPA存储库 使用再次执行操作关系数据库 直接EntityManager访问 直接访问JPA ...
springboot+jpa+hibernate+reids项目的搭建,jpa映射数据库操作,reids进行缓存操作