I have a need to be able to run a custom native sql command against the same
connection that is being used for a JPA query.
i have a JTAManaged datasource declared in my resources.xml, it is
referenced in a persistence.xml for JPA.
@Path("/foo")
@Stateless
public class Foo {
@PersistenceContext(unitName = "foo")
private EntityManager entityManager;
@Resource(name = "foo/myDatabase")
private javax.sql.DataSource myDB;
@GET
public DataObj getAll() {
DataObj result = null;
try {
Connection connection = myDB.getConnection();
//actual alter session statement ommitted
PreparedStatement ps =
connection.prepareStatement("ALTER SESSION
STATEMENT");
ps.execute();
ps.close();
TypedQuery<DataObj> query =
entityManager.createNamedQuery("DataObj.findAll", DataObj.class);
result = query.getSingleResult();
} catch (Exception exception) {
exception.printStackTrace();
}
return result;
}
}
this code works in tomee Plus, as this is a JTA managed transaction, i get
the same connection for both the direct database connection that is injected
and for the connection that is used by JPA.
If i deploy this to tomee plume (eclipse link).. i believe it is using two
different connections.
when i read:
http://wiki.eclipse.org/EclipseLink/Examples/JPA/EMAPI#Getting_a_JDBC_Connection_from_an_EntityManager
it makes me think the behavior should be the same with eclipselink.
let me know what further information you would want. and how i can provide.
--
View this message in context:
http://tomee-openejb.979440.n4.nabble.com/Different-behavior-Tomee-Plus-7-0-3-vs-Tomee-plume-7-0-3-JTA-managed-database-connections-tp4681596.html
Sent from the TomEE Users mailing list archive at Nabble.com.