欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

JPA NamedQuery示例,jpanamedquery示例,package cn.o

来源: javaer 分享于  点击 41737 次 点评:83

JPA NamedQuery示例,jpanamedquery示例,package cn.o


package cn.outofmemory.snippets.enterprise;import java.util.Date;import java.util.List;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import javax.persistence.Query;public class NamedQueryWithEntityInJPA {    @SuppressWarnings("unchecked")    public static void main(String[] args) {        EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyPersistenceUnit");        EntityManager em = emf.createEntityManager();        em.getTransaction().begin();        Employee employee1 = new Employee();        employee1.setName("Jack");        employee1.setSurname("Thomson");        employee1.setTitle("QA Engineer");        employee1.setCreated(new Date());        em.persist(employee1);        Employee employee2 = new Employee();        employee2.setName("Mary");        employee2.setSurname("Nickolson");        employee2.setTitle("QA Engineer");        employee2.setCreated(new Date());        em.persist(employee2);        em.getTransaction().commit();        em.getTransaction().begin();        Query query = em.createNamedQuery("findEmployeeByName");        query.setParameter(1, "Jack");        List<Employee> employees = (List<Employee>) query.getResultList();        System.out.println("employees " + employees);        em.getTransaction().commit();        em.close();        emf.close();    }}
package cn.outofmemory.snippets.enterprise;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.ManyToOne;import javax.persistence.NamedQuery;import javax.persistence.OneToMany;@Entity@NamedQuery(name="findEmployeeByName",        query="SELECT e FROM Employee e " +              "WHERE e.name = ?1")public class Employee {    @Id    @GeneratedValue(strategy=GenerationType.AUTO)    private Long id;    private String name;    private String surname;    private String title;    private Date created;    @OneToMany    @JoinTable(name = "EMP_PHONE", joinColumns = @JoinColumn(name = "EMP_ID"), inverseJoinColumns = @JoinColumn(name = "PHONE_ID"))    private Collection<Phone> phones;    @ManyToOne    private Department department;    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;    }    public void addPhone(Phone phone) {        if (phones==null) {            phones = new ArrayList<Phone>();        }        if (!phones.contains(phone)) {            phones.add(phone);        }    }    public Collection<Phone> getPhones() {        return phones;    }    public Department getDepartment() {        return department;    }    public void setDepartment(Department department) {        this.department = department;    }    @Override    public String toString() {        return "Employee [id=" + id + ", name=" + name + ", surname=" + surname                + ", title=" + title + ", phones=" + phones + "]";    }}

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>

输出:

employees [Employee [id=1, name=Jack, surname=Thomson, title=QA Engineer, phones=null]]
相关栏目:

用户点评