JNDI lookup works fine using lookUp but not when used in persistence.xml of JPA

后端 未结 2 2120
感情败类
感情败类 2021-02-19 10:10

I am using tomcat connection pool, jpa, hibernate. The datasource i created in context.xml of tomcat works fine if I try to get it using :

source = (DataSource)          


        
相关标签:
2条回答
  • 2021-02-19 10:51

    Maybe try the persistence.xml JNDI defined name including both the namespace ("java:comp/env") as well as the JNDI path ("jdbc/kids") in a single-string (i.e put them together).

    0 讨论(0)
  • 2021-02-19 10:52

    Finally it worked today after i specified the properties below.. because just mentioning the datasource is not enough; we need to specify some properties like which dialect to use. If we specify datasource; we need not specify username , password url of the database ( as all are specified in the datasource configuration itself) .

    Most important point is the way you specify the datasource. It should be complete path: java:/comp/env/jdbc/kids . All this while I was missing the slash just before comp.

    <persistence-unit name="kids" transaction-type="RESOURCE_LOCAL">
        <non-jta-data-source>java:/comp/env/jdbc/kids</non-jta-data-source>
        <class>com.kids.domain.User</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
            <property name="connection.autocommit" value="false"/>
            <property name="hibernate.hbm2ddl.auto" value="create"/>
            <property name="hibernate.show_sql" value="true"/>
        </properties>
    </persistence-unit>
    

    0 讨论(0)
提交回复
热议问题