DataNucleus初始化时出现警告,是否可以忽略该警告?
DataNucleus初始化警告是否可忽略?
你遇到的警告信息:
[main] WARN DataNucleus.Datastore - 已指定默认Schema名称"databasename",但数据库适配器(JDBC驱动)不支持在表定义中指定Schema名称!
你的环境信息:
- DataNucleus版本:
datanucleus-rdbms-5.1.0-release - JDK版本:8
- MySQL JDBC驱动版本:
mysql-connector-java-8.0.11
相关配置片段(jdoconfig.xml):
<property name="javax.jdo.option.ConnectionDriverName" value="com.mysql.cj.jdbc.Driver"/> <property name="javax.jdo.option.ConnectionURL" value="jdbc:mysql://ip:3306/databasename?autoReconnect=true&useSSL=false&nullCatalogMeansCurrent=true"/>
嘿,这个警告完全可以放心忽略,原因很直白:
- 你的JDBC连接URL里已经通过
nullCatalogMeansCurrent=true参数明确指定了默认使用databasename这个数据库——在MySQL里,database的概念和SQL标准里的schema基本等价,DataNucleus最终会正确操作目标库里的表,不会出现找不到表的问题。 - 这个警告只是DataNucleus的一个提示:它发现你配置了默认Schema名称,但MySQL的JDBC驱动并不支持在表定义里显式指定Schema(因为MySQL本身用database做隔离,不需要额外在表名前加schema前缀),所以它告诉你这个配置项不会生效,但这完全不影响实际的持久化操作。
- 要是你看着这个警告碍眼,也可以检查下jdoconfig.xml里有没有
javax.jdo.option.Schema这个配置项,如果有的话删掉它,警告就会消失——但说实话,留着也没啥问题,反正不影响功能。
内容的提问来源于stack exchange,提问作者Dima Svider
相关产品推荐
相关产品推荐

