Использование пула соединений Tomcat с JPA - PullRequest
3 голосов
/ 09 июня 2011

Я хочу использовать пул соединений с JPA / TopLink в моем веб-приложении, работающем на tomcat. Раньше я использовал классы jdbc Connection и Statement для манипулирования данными в базе данных;чтобы использовать пул соединений таким образом, я просто объявляю ресурс в context.xml и получаю этот ресурс в приложении:

Context c = new InitialContext();
DataSource source = (DataSource) ((Context)c.lookup("java:comp/env")).lookup("jdbc/MySource");

И теперь я хочу использовать такой пул соединений с JPA.Как я могу это сделать?

Еще один вопрос: я видел в некоторых примерах, что ресурс объявлен в context.xml, а затем объявлен в web.xml в .Почему я должен объявить это в разных местах или это одно и то же объявление, я имею в виду, это эквивалент объявления в context.xml?

1 Ответ

6 голосов
/ 09 июня 2011

А теперь я хочу использовать такой пул соединений с JPA.Как я могу это сделать?

Предполагая, что вы уже объявили создание источника данных пула соединений с помощью <Resource> в context.xml, тогда вам просто нужно объявить использование источника данных дляJPA в веб-приложении /META-INF/persistence.xml.

<persistence-unit name="YourPersistenceUnit" transaction-type="JTA">
    <jta-data-source>jdbc/MySource</jta-data-source>
</persistence-unit>

Еще один вопрос: я видел в некоторых примерах, что ресурс объявлен в context.xml, а затемобъявлено в web.xml в <resource-ref>.Почему я должен объявлять его в разных местах или это одно и то же объявление, я имею в виду, эквивалентно ли это объявлению в context.xml?

Значение <Resource> в context.xml определяет создание источника данных сервлет-контейнером.Он может быть использован несколькими веб-приложениями.Значение <resource-ref> в web.xml определяет использование источника данных конкретным веб-приложением.Примечание: при использовании JPA вам не нужен тот, который указан в web.xml.Это входит в persistence.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...