Java 使用EntityManager插入数据库

Java 使用EntityManager插入数据库,java,database,entitymanager,Java,Database,Entitymanager,我一直在寻找一种在Java中使用EntityManager类与数据库交互的方法 这个问题与我在DB中定义的这两个表有关: PARENT_TABLE: PK_ONE PK_TWO CHILD TABLE: PK_ONE COLUMN PK_TWO 到目前为止,我有一些东西 import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Enti

我一直在寻找一种在Java中使用EntityManager类与数据库交互的方法

这个问题与我在DB中定义的这两个表有关:

PARENT_TABLE:
    PK_ONE
    PK_TWO

CHILD TABLE:
    PK_ONE
    COLUMN
    PK_TWO
到目前为止,我有一些东西

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.SecondaryTable;
import javax.persistence.Table;
import javax.persistence.PrimaryKeyJoinColumn;

@Entity
@Table(name="PARENT_TABLE")
@SecondaryTable(name="CHILD_TABLE", pkJoinColumns={
        @PrimaryKeyJoinColumn(name="PK_ONE"),
        @PrimaryKeyJoinColumn(name="PK_TWO")})
public class ExampleTbl implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name="PK_ONE")
    private String pkOne;

    @Id
    @Column(name="COLUMN", table="CHILD_TABLE")
    private String column;

    @Column(name="PK_TWO")
    private String pkTwo;

    //GETTERS AND SETTERS
}
我的问题是:

为了能够向父表插入新行,我是否必须创建一个只包含两个字段(PK_ONE,PK_two)的新实体类,才能使用merge()或persist()方法

我是否需要创建另一个实体类来向我的CHILD_表插入新行

要检索包含现有数据的列表,我有如下方法:

@Transactional(readOnly = true)
public List<ExampleTbl> getFoldersList() {
        em = emf.createEntityManager();
        Query q = em.createQuery("SELECT e FROM ExampleTbl e WHERE e.pkTwo = :pkTwo ORDER BY e.pkOne");
            q.setParameter("pkTwo", "My Test");
        List<ExampleTbl> result = q.getResultList();
        return result;
    }
@Transactional(readOnly=true)
公共列表getFoldersList(){
em=emf.createEntityManager();
Query q=em.createQuery(“从ExampleTbl e中选择e,其中e.pkTwo=:pkTwo ORDER BY e.pkOne”);
q、 setParameter(“pkTwo”,“我的测试”);
List result=q.getResultList();
返回结果;
}

你认为这是最好的方法吗?

我认为这是一个有几个可能答案的问题。我建议您回顾一下JavaEE6教程示例中的一些设置方法。你可以在