我在运行此文件时遇到的错误
run:
Going to run Session!
Jan 01, 2015 3:38:25 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
Jan 01, 2015 3:38:25 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.1.Final}
Jan 01, 2015 3:38:25 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Jan 01, 2015 3:38:25 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Jan 01, 2015 3:38:25 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
Jan 01, 2015 3:38:25 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
Jan 01, 2015 3:38:25 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
Jan 01, 2015 3:38:25 PM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: Classes/Data.hbm.xml
Jan 01, 2015 3:38:25 PM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: hibernate.hbm.xml
Jan 01, 2015 3:38:25 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
Exception in thread "main" org.hibernate.MappingException: <mapping> element in configuration specifies no known attributes
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2286)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2227)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2207)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2160)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2075)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2054)
at org.hibernate.util.HibernateUtil.getSessionFactory(HibernateUtil.java:14)
at test.Test.main(Test.java:12)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
我代码中的其他文件,其中Test.java是我的主文件
Test.java
package test;
import org.hibernate.Session;
import org.hibernate.Query;
import java.util.*;
import org.hibernate.util.HibernateUtil;
public class Test {
public static void main(String[] args) {
System.out.println("Going to run Session!");
Session session= HibernateUtil.getSessionFactory().openSession();
System.out.println("Going to run Query!");
Query query = session.createQuery("from Data");
System.out.println("Going to run save query!");
List list = query.list();
System.out.println("Going to print list!");
System.out.print(list);
}
}
hibernateUtil.java
package org.hibernate.util;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class HibernateUtil {
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
public static SessionFactory getSessionFactory() {
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
}
}
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://localhost\I7\SQLEXPRESS:1433;databaseName=bulksms</property>
<property name="hibernate.connection.username">connect</property>
<property name="hibernate.connection.password">connection</property>
<mapping resource="Classes/Data.hbm.xml"/>
<mapping resource="hibernate.hbm.xml"/>
<mapping/>
<mapping/>
</session-factory>
</hibernate-configuration>
hibernate.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Classes.Data" table="Data" schema="dbo" catalog="bulksms" optimistic-lock="version">
<id name="name" type="string">
<column name="Name" length="20" />
<generator class="assigned" />
</id>
<property name="cell" type="string">
<column name="Cell" length="12" />
</property>
</class>
</hibernate-mapping>
hibernate.reveng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">
<hibernate-reverse-engineering>
<schema-selection match-catalog="bulksms" match-schema="dbo"/>
<table-filter match-name="Data"/>
</hibernate-reverse-engineering>
Data.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 30 Dec 2014 8:25:05 PM by Hibernate Tools 4.3.1 -->
<hibernate-mapping>
<class name="Classes.Data" table="Data" schema="dbo" catalog="bulksms" optimistic-lock="version">
<id name="name" type="string">
<column name="Name" length="20" />
<generator class="assigned" />
</id>
<property name="cell" type="string">
<column name="Cell" length="12" />
</property>
</class>
</hibernate-mapping>
资料库
package Classes;
// Generated 30 Dec 2014 8:25:04 PM by Hibernate Tools 4.3.1
/**
* Data generated by hbm2java
*/
public class Data implements java.io.Serializable {
private String name;
private String cell;
public Data() {
}
public Data(String name) {
this.name = name;
}
public Data(String name, String cell) {
this.name = name;
this.cell = cell;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getCell() {
return this.cell;
}
public void setCell(String cell) {
this.cell = cell;
}
}
最佳答案
根据此错误消息:
配置中的<mapping>
元素未指定任何已知属性
问题似乎出在您的Hibernate配置文件中的空<mapping>
元素中:
<mapping/>
<mapping/>
您应该删除它们。
同样,虽然这不是错误,但是日志中有警告,表明您正在使用过时的名称空间。理想情况下,您也应该修复该问题。