2013-05-28 1 views
0

Я новичок в OpenJPA
Я пытаюсь вставить данные в таблицу, некоторые из которых поступают из другой таблицы. Ниже приведен сценарий.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 и как отобразить эти поля друг с другом в двух POJOs. если я использую Query object, то как насчет pojos ?? будут ли они использоваться? Я имею в виду, мне нужно будет сделать transaction.save ??

Любая помощь с примером кода оценивается.

ответ

1

Ваш запрос обрабатывает данные непосредственно в базе данных, в то время как JPA обрабатывает отношения объектов.

Я не уверен, какую проблему вы пытаетесь решить, но можете ли вы прочитать Pojo1, чтобы преобразовать его в объект Pojo2, который вы только что сохранили?

Редактировать: В приложении Java сначала вы получите Pojo1 из диспетчера объектов с некоторым запросом. Затем создайте соответствующие объекты Pojo2 с полями, которые вы хотите от Pojo1. Затем просто для entityManager.persist с вашими новыми объектами Pojo2.

Это довольно сложно выполнить то, что вы показали, может быть сделано в однострочном выражении sql.

+0

Мне нужно вставить данные в таблицу 2, но вам нужно выбрать 3 столбца из таблицы 1. Что означает u, преобразование pojo1 в объект pojo2. Могу ли вы, пожалуйста, привести пример? Спасибо –

+0

Спасибо Dan, это пришло мне в голову, но я думаю, что он будет медленным, и когда мне придется вставить кучу данных, запуск цикла for для него будет утомительным, чтобы соответствовать каждой записи. Можете ли вы предложить некоторое обходное решение? –

+0

см. Http://stackoverflow.com/questions/6040969/how-can-i-move-an-object-from-one-table-to-another-using-openjpa?rq=1 – Dan