[ 
https://issues.apache.org/jira/browse/OPENJPA-1803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sebastian Laskawiec updated OPENJPA-1803:
-----------------------------------------

    Attachment: OPENJPA-1803.patch

Hi, I also think it is a good idea. I think it is OK with the spec to return 
here java.sql.Connection:

/** 
* Return an object of the specified type to allow access to the
* provider-specific API. If the provider's EntityManager
* implementation does not support the specified class, the
* PersistenceException is thrown.
…

I found also part of the documentation, which describes, how to obtain JDBC 
connection: 
http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/ref_guide_dbsetup_sqlconn.html

Please take a look at this patch, I added _broker.getConnection() to 
EntityManagerImpl.unwrap method and added one test. 

> Unwrap EntityManager to Connection
> ----------------------------------
>
>                 Key: OPENJPA-1803
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1803
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: competitive, jpa
>    Affects Versions: 2.0.1
>            Reporter: Harald Wellmann
>         Attachments: OPENJPA-1803.patch
>
>
> This is currently the recommended way to access the javax.sql.Connection 
> underlying an EntityManager:
>         OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
>         Connection con = (Connection) oem.getConnection();
> It would be more convenient to simply write
>         Connection con = em.unwrap(Connection.class);
> That way, the client needing to access the Connection only depends on the 
> javax.persistence API and not on org.apache.openjpa.*.
> I believe the JPA 2.0 spec neither mandates nor forbids this functionality. 
> It is supported by Eclipselink 2.x.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to