首页 > 代码库 > JPA学习---第四节:JPA实例与JPA主键生成策略
JPA学习---第四节:JPA实例与JPA主键生成策略
1、编写实体类,代码如下:
package learn.jpa.bean;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entitypublic class Person { @Id @GeneratedValue private Integer id; private String name; public Person(){} public Person(String name){ this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
@Id用于标记属性的主键
@GeneratedValue
JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.
- -TABLE:使用一个特定的数据库表格来保存主键。
- -SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
- -IDENTITY:主键由数据库自动生成(主要是自动增长型)
- -AUTO:主键由程序控制(也是默认的,在指定主键时,如果不指定主键生成策略,默认为AUTO)
2、单元测试类,代码如下:
package learn.jpa.junit.test;import static org.junit.Assert.*;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import learn.jpa.bean.Person;import org.junit.Test;public class PersonTest { @Test public void save(){ EntityManagerFactory factory = Persistence.createEntityManagerFactory("learn_jpa"); EntityManager em = factory.createEntityManager(); em.getTransaction().begin(); // 开启事务 em.persist(new Person("hwl")); em.getTransaction().commit(); em.close(); factory.close(); }}
(1)、表什么时候被创建?
在执行完一下语句的时候表被创建:
EntityManagerFactory factory = Persistence.createEntityManagerFactory("learn_jpa");
如果表没有被创建,则说明些的 Entity bean 有问题。
JPA学习---第四节:JPA实例与JPA主键生成策略
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。