【问题标题】:OpenJPA inserting into one table data from another tableOpenJPA 将另一表中的数据插入到一个表中
【发布时间】:2013-05-28 07:53:15
【问题描述】:

我是OpenJPA的新手
我正在尝试将数据插入到一个表中,其中一些来自另一个表。下面是场景。

Table1: id, app_name, app_version, app_active  

Table2: id, app_name, app_version, dev_name, dev_Lastname, dev_shortname,

Pojo1 maps fields to column of table1  
Pojo2 maps fields to column of table2

查询:

insert into table2 ("dev_name","dev_lastname","dev_shortname") select t1.app_name, t1.app_version from Table1 t1 where t1.app_name = ?

我不知道如何使用 Openjpa 运行此查询,以及如何在两个 pojo 中将这些字段相互映射。 如果我使用Query object 那么pojos呢?他们会派上用场吗??我的意思是我需要这样做transaction.save吗?

任何有关示例代码的帮助表示赞赏。

【问题讨论】:

    标签: java sql openjpa


    【解决方案1】:

    您的查询直接在数据库中操作数据,而 JPA 处理对象关系。

    我不确定您要解决什么问题,但是您可以阅读 Pojo1 将其转换为您刚刚保存的 Pojo2 对象吗?

    编辑: 在您的 java 应用程序中,首先使用一些查询从实体管理器中检索您的 Pojo1。 然后用 Pojo1 中你想要的字段构造对应的 Pojo2 对象。然后就用你的新 Pojo2 对象来 entityManager.persist。

    要执行您展示的可以在一行 sql 语句中进行的操作非常复杂。

    【讨论】:

    • 我必须将数据插入表 2,但需要从表 1 中选择 3 列。将 pojo1 转换为 pojo2 对象是什么意思。你能举个例子吗?谢谢
    • 感谢 Dan,我想到了这一点,但我认为它会很慢,当我必须插入一堆数据时,运行 for 循环来匹配每个条目会很乏味。你能建议一些解决方法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多