我的persistence.xml
:
<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"
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.ibm.apiscanner.DTO.BaselineDTO</class>
<properties>
<property name="hibernate.connection.driver_class" value="com.ibm.db2.jcc.DB2Driver" />
<property name="hibernate.connection.url" value="jdbc:db2://localhost:{PORT}/{DB}" />
<property name="hibernate.connection.username" value="{user}" />
<property name="hibernate.connection.password" value="{password}" />
<property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/>
<property name="show_sql" value="true"/>
<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
</properties>
</persistence-unit>
</persistence>
我看到了以下内容:
Jan 22, 2015 9:16:48 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.DB2Dialect
Jan 22, 2015 9:16:48 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000422: Disabling contextual LOB creation as connection was null
通过基本JDBC进行连接时,相同的URL,用户和密码组合起作用。
有人有建议吗?
答案 0 :(得分:1)
这是一条INFO消息(无需担心)因为你设置了:
<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
默认情况下,如果您未指定此属性,则将其设置为true,并使用JDBC连接检查数据库元数据。
所以你有两个选择:
你保留它,但你也添加了这个属性:
hibernate.jdbc.lob.non_contextual_creation=true
然后你会得到一些其他的INFO消息,告诉:
HHH000421: Disabling contextual LOB creation as hibernate.jdbc.lob.non_contextual_creation is true
答案 1 :(得分:0)
这对我来说是一个驱动程序版本问题,
- 假设您有db2jcc4.jar并且它与早期版本没有冲突。
- 确保您已指定currentchema