【问题标题】:Problems loading configuration with Hibernate使用 Hibernate 加载配置时出现问题
【发布时间】:2014-10-04 20:31:01
【问题描述】:

我正在尝试使用 Hibernate 映射 Mysql 表,但在执行应用程序时出现下一个错误:

Error creando una factoria de session.org.hibernate.MappingException: invalid   configuration
oct 04, 2014 10:23:31 PM org.apache.catalina.core.StandardWrapperValve invoke
Grave: El Servlet.service() para el servlet [com.Utiles.Controlador.ControladorInsertar]        en el contexto con ruta [/Libreria] lanzó la excepción [La ejecución del Servlet lanzó una      excepción] con causa raíz
org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 25; El documento no es válido:    no se ha encontrado la gramática.

我有这个 Eclipse 文件配置:

这是我的 Hibernate 配置文件:

<?xml version='1.0' encoding='utf-8'?>

 <hibernate-configuration
    xmlns="http://www.hibernate.org/xsd/hibernate-configuration"
    xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-configuration hibernate-  configuration-4.0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/proyecto</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>

<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">20</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

<!-- Drop and re-create the database schema on startup -->
<mapping resource="com.Utiles.Libro.xml"/>
</session-factory>
</hibernate-configuration>

这是我的 Libro.xml 文件:

<?xml version="1.0"?>
<hibernate-mapping package="com.Utiles">
<class name="Libro" table="libros">
    <id name="isbn" type="String" />
    <property name="titulo" type="String" column="titulo" />
    <property name="categoria" type="String" column="categoria" />
</class>
</hibernate-mapping>

你能帮帮我吗?

提前致谢

【问题讨论】:

    标签: java eclipse hibernate


    【解决方案1】:

    如果我没记错的话,您需要使用完整的类名 java.lang.String 或预定义类型 string 分配属性类型。因此,将您的 Libro.xml 更新为;

        <?xml version="1.0"?>
        <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
        <hibernate-mapping package="com.Utiles">
        <class name="Libro" table="libros">
            <id name="isbn" type="java.lang.String" />
            <property name="titulo" type="java.lang.String" column="titulo" />
            <property name="categoria" type="java.lang.String" column="categoria" />
        </class>
        </hibernate-mapping>
    

    还可以尝试在您的 Libro.xml 中添加 DOCTYPE

    希望对你有帮助。

    【讨论】:

    • 再试一次,我更新了我的答案。而且,您应该提供更多信息吗? Libro 源码,ControladorInsertar 源码...
    • 成功!!!添加 DOCTYPE 头,可以加载配置并正确修改数据库。非常感谢
    • 另一个问题...如果我想用这个 xml 替换 Hibernate 注释,我应该怎么做?在 Hibernate 3 中,它在 Libro 类中带有 @Entity 和 @@Table(name="Libros") 注释,但我认为它们已被弃用。
    • 它们没有被弃用,你可以使用它。此外,如何设置项目以使用注释是常见问题解答之一,因此请 google。这里是官方hibernate教程docs.jboss.org/hibernate/annotations/3.5/reference/en/html/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多