Лучше определить ресурс JDBC, чем помещать информацию в файл persistence.xml. Таким образом, вы собираетесь использовать пул соединений. Вы собираетесь определить имя JNDI, которое вы указали для ресурса JDBC в файле persistence.xml.
Что это и чем они отличаются
Ниже я вставил некоторые части справки Glassfish 3.x. Проверьте это. Это действительно полезно
Пул соединений JDBC
Пул соединений JDBC содержит группу соединений JDBC, которые создаются при регистрации пула соединений
JDBC-ресурс
Ресурс подключения к базе данных Java (JDBC) (источник данных) предоставляет приложениям средства подключения к базе данных. Обычно администратор создает ресурс JDBC для каждой базы данных, к которой обращаются приложения, развернутые в домене; однако для базы данных можно создать несколько ресурсов JDBC.
Приложения получают соединение с базой данных из пула соединений, просматривая источник данных в дереве API Java Naming and Directory Interface (JNDI) и затем запрашивая соединение. Пул соединений, связанный с источником данных, обеспечивает соединение с приложением.
Думайте о источнике данных (JDBC) как о фабрике для фасада некоторого типа службы данных (Connection Pool) В этом случае он неявно получает соединение из пула и предоставляет его вашему приложению.
Пример persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="WebApplication2PU" transaction-type="JTA">
<jta-data-source>jdbc/sample</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
Эта строка - имя JNDI, которое я дал своему ресурсу JDBC:
<jta-data-source>jdbc/sample</jta-data-source>
Вам не нужно таким образом определять что-либо, связанное с подключением к базе данных, в вашем persistence.xml ... только имя JNDI ресурса