我使用的是Spring 4.3和Hibernate 3.6。我尝试指定一个自定义的Hibernate方言解析器,但它没有被使用。
我将日志语句放在我的自定义方言解析器中,但它们从未打印过。
我的具体问题是:
这是我尝试过的一系列事情,而且我目前都没有想法。
config.setProperty(Environment.DIALECT_RESOLVER, MyDialectResolver.class.getName());
我在会话工厂中设置的其他属性按预期工作,但在我尝试打印时也显示为空值。例如,我正在设置一个按预期工作的连接提供程序,但在通过Environment.getProperties().getProperty(CONNECTION_PROVIDER)
访问时为null。 config.setProperty(Environment.CONNECTION_PROVIDER, CustomConnectionProvider.class.getName());
但是,当我稍后尝试打印方言解析器属性(在应用程序代码内)时,似乎没有设置它。 log.info("Dialect resolver property: " + Environment.getProperties().getProperty(Environment.DIALECT_RESOLVERS));
日志输出:"Dialect resolver property: null"
hibernate.dialect_resolvers=mypackage.MyDialectResolver;
最终编辑:我添加了一个hibernate.properties,并在其中设置属性。那很有效! hibernate.properties文件必须位于类路径的根目录下,并且不能嵌套在内部深处。这是因为Hibernate Environment loads the file的方式
我添加了一个hibernate.properties,并在其中设置了属性。那很有效!
hibernate.properties文件必须位于类路径的根目录下,并且不能嵌套在内部深处。这是因为Hibernate Environment loads the file的方式