使用 mysql 进行休眠配置会出现错误 - SAXParseException
Posted
技术标签:
【中文标题】使用 mysql 进行休眠配置会出现错误 - SAXParseException【英文标题】:Hibernate configuration with mysql gives ERROR - SAXParseException 【发布时间】:2011-09-03 07:03:21 【问题描述】:我正在尝试使用 mysql 配置休眠。
下面是hibernate.cfg.xml
:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/TestDB</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root123</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hdm2ddl.auto">create</property>property>
<property name="show_sql">false</property>
<!-- Use the C3P0 connection pool provider -->
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<mapping resource="com/psl/course/Course.hbm.xml"/>
</session-factory>
</hibernate-configuration>
但是,我遇到了以下错误。堆栈跟踪如下,
15 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.3.1.GA 31 [main] INFO org.hibernate.cfg.Environment - hibernate.properties 未找到 31 [main] INFO org.hibernate.cfg.Environment - 字节码提供者名称:javassist 47 [main] INFO org.hibernate.cfg.Environment - 使用 JDK 1.4 java.sql.Timestamp 处理 78 [main] INFO org.hibernate.cfg.Configuration - 从资源配置:/hibernate.cfg.xml 78 [main] INFO org.hibernate.cfg.Configuration - 配置资源:/hibernate.cfg.xml 156 [main] 错误 org.hibernate.util.XMLHelper - 解析 XML 时出错:/hibernate.cfg.xml(26) 元素类型“session-factory”的内容必须匹配“(property*,mapping*,(class-cache |collection-cache)*,event*,listener*)”。 初始 SessionFactory 创建 failed.org.hibernate.MappingException:无效配置 线程“主”java.lang.ExceptionInInitializerError 中的异常 在 com.psl.util.HibernateUtil.(HibernateUtil.java:13) 在 com.psl.course.Main.saveCourse(Main.java:34) 在 com.psl.course.Main.main(Main.java:16) 引起:org.hibernate.MappingException:无效配置 在 org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1521) 在 org.hibernate.cfg.Configuration.configure(Configuration.java:1462) 在 org.hibernate.cfg.Configuration.configure(Configuration.java:1448) 在 com.psl.util.HibernateUtil.(HibernateUtil.java:10) ... 2 更多 原因:org.xml.sax.SAXParseException:元素类型“session-factory”的内容必须匹配“(property*,mapping*,(class-cache|collection-cache)*,event*,listener*)”。 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(未知来源) 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(未知来源) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知来源) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知来源) 在 com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(未知来源) 在 com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(未知来源) 在 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(未知来源) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(未知来源) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(未知来源) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知来源) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知来源) 在 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知来源) 在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(未知来源) 在 org.dom4j.io.SAXReader.read(SAXReader.java:465) 在 org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1518) ... 5 更多
请帮忙,我哪里出错了?
【问题讨论】:
你能告诉我们您在 XML 中有错字:
<property name="hdm2ddl.auto">create</property>property>
【讨论】:
感谢 axtavt,错字是问题..!【参考方案2】:会话工厂的定义顺序必须遵循异常中的hte顺序
property*,mapping*,(class-cache|collection-cache),event,listener*
我猜张贴的 cfg.xml 文件不是整个文件。 (原始文件中的第 26 行)
【讨论】:
以上是关于使用 mysql 进行休眠配置会出现错误 - SAXParseException的主要内容,如果未能解决你的问题,请参考以下文章