2010-05-07 8 views
0

Мы используем Eclipselink для ORM, но у нас есть потребность в некоторых более легких взаимодействиях с базами данных, которые более похожи на JDBC. Мой вопрос заключается в том, поддерживает ли Eclipselink такую ​​идиому и есть ли какие-либо ее преимущества прямому JDBC. Я вижу, что одно преимущество - это согласованность и возможность использования существующей обработки соединений. Другие?Могу ли я использовать Eclipselink для взаимодействия с базами данных без OR?

В частности, то, что я ищу, является чем-то эквивалентным Native SQL Query Hibernate.

ответ

1

Если вы используете как JPQL, так и SQL-запросы в своем приложении, то, вероятно, правильный ответ JPA 2 - правильный подход. Вот некоторые примеры:

http://www.oracle.com/technology/pub/articles/vasiliev-jpql.html

Если ваше приложение использует только запросы SQL и обновления, то ORM это просто накладные расходы. Вы также можете получать декларативные транзакции по-разному, например, через поддержку JDBC Spring.

+0

Но, глядя на него, кажется, что использование собственного запроса означает, что я использую SQL вместо JPQL. Насколько я могу судить по/объектной модели или по одному скалярному результату. Если я просто хочу получить строку из базы данных, мне обязательно нужно создать класс для сопоставления с результатом? – Tim

+0

Я считаю, что для более гибкого отображения набора результатов вам следует использовать поддержку Spring JDBC. –

1

EclipseLink реализует JPA - вы можете запускать SQL-запросы через EntityManager. Если вы запускаете SQL-запросы, не связанные с моделью вашего приложения, у вас не будет преимуществ перед JDBC - напротив, вы будете использовать гораздо более тяжелую инфраструктуру. Если вы связываете SQL to the model, то у вас будет преимущество сделать дополнительные оптимизации запросов, используя потенциал полной db. Я не уверен, что это то, что вы хотите сделать, однако ...