java - 使用 JPA 将多行映射到 2 个实体?

标签 java jpa oracle11g

我有一个包含多个“子任务”实体(列表)的实体“项目”。现在通常这在数据库中很简单并且分开并且易于映射。但在这种情况下,我只有 1 个 View 。这意味着每个子任务都有一行,每条记录都有项目数据。

例子:

projectId | projectName | subTaskId | subTaskName | ....
---------------------------------------------------------
1         | projectTest | 1         | subTaskTest | ....
1         | projectTest | 2         | subTaskTest2| ....

我正在尝试找到一种使用 JPA 进行映射的方法,但我不确定这是否完全可行,如果可行,哪种方法最好。

有没有人试过这个?你能给我指出正确的方向吗?

编辑:

一些额外的信息:我需要创建一个可以返回项目(包括所有子任务)的网络服务。而且它当然是只读的,不能写入或编辑。

最佳答案

使用两个 Java 类ProjectEmbedded - EmbeddableSubTask - 实体。这是正确的解决方案,因为您不能在此 View 中插入新条目(如新项目)

@Embeddable
public class ProjectEmbedded {
    private Long projectId;
    private String projectName;
}


@Entity
public class SubTask {
    private Long subTaskId;
    private String subTaskName;
    @Embedded
    private ProjectEmbedded project;
}

关于java - 使用 JPA 将多行映射到 2 个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23128242/

相关文章:

java - 异常javax.servlet.ServletException:通信链接失败:java.io.EOFException

java - docker容器之间的gRPC通信

java - 在 jpa 中选择带有 order by 的案例

python - 在 Python 和 Oracle 11g 中通过 cur.fetchall() 下载数组

java - Oracle JDBC 连接 : Transaction Isolation Level

java - 在 java 中设置 textview XML

java - 基于 Maven 配置文件的 web.xml 配置

java - 如何在数据库表已填充 JPA 时正确设置 @Id 字段

java - SQL 到 JPQL - 半正矢公式

database - 如何在数据库中有效地维护排序顺序