java使用JPA删除记录,javajpa删除,package cn.o
分享于 点击 29709 次 点评:68
java使用JPA删除记录,javajpa删除,package cn.o
package cn.outofmemory.snippets.enterprise;import java.util.Date;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import javax.persistence.Query;public class DeleteWithCondition { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyPersistenceUnit"); EntityManager em = emf.createEntityManager(); // create entities em.getTransaction().begin(); Employee employee = new Employee(); employee.setName("Jack"); employee.setSurname("Thomson"); employee.setTitle("QA Engineer"); employee.setCreated(new Date()); em.persist(employee); employee = new Employee(); employee.setName("John"); employee.setSurname("Peterson"); employee.setTitle("Software Engineer"); employee.setCreated(new Date()); em.persist(employee); employee = new Employee(); employee.setName("Mary"); employee.setSurname("Nicholson"); employee.setTitle("Project Manager"); employee.setCreated(new Date()); em.persist(employee); em.getTransaction().commit(); // delete with condition em.getTransaction().begin(); Query query = em.createQuery("DELETE FROM Employee e WHERE title like '%Engineer%'"); long rows = query.executeUpdate(); System.out.println("Rows deleted: " + rows); em.getTransaction().commit(); em.close(); emf.close(); }}
package cn.outofmemory.snippets.enterprise;import java.util.Date;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;@Entitypublic class Employee { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; private String name; private String surname; private String title; private Date created; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } @Override public String toString() { return "Employee [id=" + id + ", name=" + name + ", surname=" + surname + ", title=" + title + "]"; }}
persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="MyPersistenceUnit" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> <property name="hibernate.connection.username" value="jcg" /> <property name="hibernate.connection.password" value="jcg" /> <property name="hibernate.connection.url" value="jdbc:mysql://localhost/companydb" /> </properties> </persistence-unit></persistence>
输出:
Rows deleted: 2
用户点评