12. JPA EntityManager persist 方法详解
来源:互联网 发布:淘宝女运动服套装冬款 编辑:程序博客网 时间:2024/05/21 15:46
@Test public void testPersistence(){ EntityManagerFactory factory; EntityManager manager; EntityTransaction transaction; factory = Persistence.createEntityManagerFactory("JPA"); manager = factory.createEntityManager(); transaction = manager.getTransaction(); transaction.begin(); Customer customer = new Customer(); customer.setAge(15); customer.setName("张三"); manager.persist(customer); transaction.commit(); manager.close(); factory.close(); }
SQL:
Hibernate: insert into CUSTOMERS (Age, Email, Name) values (?, ?, ?)
persist方法类似于Hibernate save方法,但是存在一个不同点:
在数据库主键自增情况下:若提前设置id属性值,JPA EntityManager 的 persist方法将抛出异常,而Hibernate Session的 save 方法可以执行,将忽略提前设置的id值
@Table(name = "CUSTOMERS")@Entitypublic class Customer { @Column(name = "ID") @GeneratedValue(strategy = GenerationType.AUTO) @Id private Integer id; @Column(name = "Name") private String name; @Column(name = "Email") private String email; @Column(name = "Age") private int age;}
persist:
@Test public void testPersistence(){ EntityManagerFactory factory; EntityManager manager; EntityTransaction transaction; factory = Persistence.createEntityManagerFactory("JPA"); manager = factory.createEntityManager(); transaction = manager.getTransaction(); transaction.begin(); Customer customer = new Customer(); customer.setId(3); customer.setAge(15); customer.setName("张三"); manager.persist(customer); transaction.commit(); manager.close(); factory.close(); }
抛出org.hibernate.PersistentObjectException
hibernate save:
@Test public void test(){ //1.创建一个SessionFactory对象 SessionFactory factory = null; //1) 创建Configuration对象 Configuration cfg = new Configuration().configure(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .applySettings(cfg.getProperties()).build(); factory = cfg.buildSessionFactory(serviceRegistry); //2.创建一个Session对象 Session session = factory.openSession(); //3.开启事务 Transaction transaction = session.beginTransaction(); //4.执行保存操作 User user = new User("张三", "杭州", new Date()); user.setId(10); System.out.println(user); session.save(user); System.out.println(user); //5.提交事务 transaction.commit(); //6.关闭Session session.close(); }
User [id=10, name=张三, address=杭州, createOn=Fri Jan 29 11:33:15 CST 2016]Hibernate: insert into users (name, Address, createOn, description) values (?, ?, ?, ?)User [id=8, name=张三, address=杭州, createOn=Fri Jan 29 11:33:15 CST 2016]
虽然提前设置了,但是将被忽略
0 0
- 12. JPA EntityManager persist 方法详解
- 13. JPA EntityManager remove方法详解
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- 使用JPA的EntityManager.persist()方法无法保存到数据库的问题
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove 的使用
- 【转】使用JPA的EntityManager.persist()方法无法保存到数据库的问题
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法:persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- jquery的each()详细介绍
- Apple Pay
- powerdesigner 16.5 name code 取消同步
- 专业面试
- 线性代数:第三章 矩阵的初等变换与线性方程组(2)线性方程组的解 初等方阵
- 12. JPA EntityManager persist 方法详解
- [BZOJ2286][SDOI2011]消耗战
- 聚类1-K-means-EM算法
- /etc/securetty和禁止telnet root登录
- pat 1001 - 1004
- httpClient 使用post方法提交json数据,接收返回数据实例
- openGL之圆环---openGL学习笔记(七)
- java 调用webservice 接口 解析返回json
- centOS 开机自启动配置方法