【问题标题】:Hibernate, Spring, some error with propertyConfiguratorHibernate,Spring,propertyConfigurator 出现一些错误
【发布时间】:2014-07-03 08:52:36
【问题描述】:

我有一些 Spring 上下文配置

<bean name="propertyConfigurator" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="location" value="classpath:/com/net/model/jdbc.properties"/>
</bean>
            ....

<bean id="sessionFactoryToBillingDb" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  <property name="hibernateProperties">
   <props>
     <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            ....

jdbc.properties看起来像

...
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
...

我想使用 Inellij Idea 的 HQL 控制台,但出现错误:

java.lang.RuntimeException: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQLDialectt.MySQLDialect] as strategy [org.hibernate.dialect.Dialect]

org.hibernate.dialect.MySQLDialectt.MySQLDialect 怎么了?

【问题讨论】:

  • 根据重复:该类名为:“MySQLDialect”,你有一个错字(方言)
  • 我无法理解 jdbc.properties 中设置的 hibernate.dialect=org.hibernate.dialect.MySQLDialect 如何在 hql 控制台中转换为 org.hibernate.dialect.MySQLDialectt.MySQLDialect
  • 您是否尝试打印 ${hibernate.dialect} 的内容? (例如,把它放在一个预期数字的地方,看看会发生什么)。您是否在您的项目中对文本“MySQLDialect”进行了全文搜索?
  • jdbc.properties 中的其他属性是否正确携带?

标签: spring hibernate hql propertyconfigurator


【解决方案1】:

您添加了一个额外的 t。这就是错误消息的内容:

无法解析名称 [org.hibernate.dialect.MySQLDialectt.MySQLDialect]

【讨论】:

    【解决方案2】:

    很可能该属性的值 (org.hibernate.dialect.MySQLDialectt.MySQLDialect) 与您怀疑它的值 (org.hibernate.dialect.MySQL5Dialect) 不同。所以必须有一些东西改变这个价值,而这个东西不在你展示给我们的项目部分。

    我从我们在问题的 cmets 中尝试过的内容中知道这一点:

    1. 在那里写实际值而不是参数:有效,所以它不是 Hibernate 做错了
    2. 测试是否使用了文件中的其他参数:有效,因此文件读取工作正常。

    你应该尝试的事情:

    1. 您需要打印出值${hibernate.dialect}。最简单的方法是在错误的位置使用参数(例如 url 所属的位置或类似位置)。这会导致您在此处看到错误消息,并且您可以确定该变量的实际值是什么。
    2. 您应该在您的项目中对“MySQL”、“Dialectt”和“Dialect”模式进行全文搜索,看看是否找到任何可能导致这种情况的原因。
    3. 如果失败,请启动一个新项目,该项目仅包含重新创建此特定问题所需的元素,其他任何内容都没有(!)。看看它是否在那里工作,如果可以,开始将此项目合并到你当前的项目中,直到它工作 -> 然后你发现它哪里出了问题。

    【讨论】:

      猜你喜欢
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 2012-12-31
      • 1970-01-01
      相关资源
      最近更新 更多