Java 使用EntityManager插入数据库
我一直在寻找一种在Java中使用EntityManager类与数据库交互的方法 这个问题与我在DB中定义的这两个表有关: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
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教程示例中的一些设置方法。你可以在