java - JPA将两个或多个表合并到另一个表中

标签 java sql hibernate jpa

是否可以使用 JPA、Hibernate 从某些表(实体)中获取某些列并将它们存储到另一个表的列中?

例如;
表 1 : id, name, surname, ...
Table2 : id, school, city, ...

Table3: unqId, name, surname, school, city

从 Table1 和 Table2 中选择并插入到 Table3。

或者,从 Table1 和 Table2 中选择结果作为 Table3 实体。

谢谢。

最佳答案

是的,如果 Table1Table2 有某种关系,或者说是可连接的。然后你可以像这样在 SQL 中执行插入查询,

insert into Table3 (....) select .... from Table1 inner join Table2..

现在,您将如何使用 JPA 实现同样的目标。

  1. 使用 NamedQuery 或您认为更好的任何方式获取所需的 POJO
  2. 使用手头的结果设置 Table3 属性
  3. 坚持 Table3

如果 Table1Table2 不可连接,则需要分别查询。并在 JPA 中执行相同的步骤 2 和 3。在 SQL 中,可以为此使用存储过程。

关于java - JPA将两个或多个表合并到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4602878/

相关文章:

sql - 在 Hive 中寻找在列中具有特殊字符的行

sql - 在具有复合 PK 的表上使用 where in 两次是否足够?

java - 在 Hibernate Spring 中添加 TransactionManager

java - 使用 openEntityManagerInView 仍然得到 "failed to lazily initialize a collection of role"

java - 部署在 websphere 上时 SOAP 调用失败,但在 tomcat 上运行正常

java - 如何在 Java/GWT 中经过一段时间后隐藏弹出窗口

java - 如何自动复制数据到新的RMI线程?

java - 使用 junit 和 mockito 执行测试用例时, Autowiring 依赖项不会被模拟

mysql - 或者在 MySQL 中使查询非常慢

mysql - JPA/Hibernate/mySql 中没有持久化数据