在Hibernate中,我在运行时遇到错误
1。 employee.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 package ="com.hibernate.basic">
<class name="Employee" table="Employee" lazy="false">
<id name="id" column="EMPID" type ="int">
<generator class="increment"></generator>
</id>
<property name="firstName" column="NAME"></property>
<property name="lastName"column="LNAME"></property>
</class>
2。的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="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@172.16.3.94:1521:EAMABP</property>
<property name="connection.username">EAM</property>
<property name="connection.password">EAM</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="employee.hbm.xml" />
</session-factory>
</hibernate-configuration>
第3。 Employee.java
package com.hibernate.basic;
public class Employee {
private int id;
private String FName, LName;
public String getFName() {
return FName;
}
public void setFName(String FName) {
this.FName = FName;
}
public String getLName() {
return LName;
}
public void setLName(String LName) {
this.LName = LName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
4。 StoreData.java
package com.hibernate.basic;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class StoreData {
public static void main(String[] args) {
// creating configuration object
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");// populates the data of the
// configuration file
// creating seession factory object
SessionFactory factory = cfg.buildSessionFactory();
// creating session object
Session session = factory.openSession();
// creating transaction object
Transaction t = session.beginTransaction();
Employee e1 = new Employee();
e1.setId(115);
e1.setFName("sonoo");
e1.setLName("jaiswal");
session.persist(e1);// persisting the object
t.commit();// transaction is commited
session.close();
System.out.println("successfully saved");
}
}
执行后发生错误:
log4j:WARN找不到记录器的appender (org.hibernate.cfg.Environment中)。 log4j:WARN请初始化 log4j系统正常。线程“main”中的异常 org.hibernate.InvalidMappingException:无法解析映射 来自资源employee.hbm.xml的文档 org.hibernate.cfg.Configuration.addResource(Configuration.java:569) 在 org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587) 在 org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555) 在 org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534) 在 org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508) 在org.hibernate.cfg.Configuration.configure(Configuration.java:1428) 在com.hibernate.basic.StoreData.main(StoreData.java:13)引起: org.hibernate.InvalidMappingException:无法解析映射 来自输入流的文档 org.hibernate.cfg.Configuration.addInputStream(Configuration.java:508) 在 org.hibernate.cfg.Configuration.addResource(Configuration.java:566) ... 6更多引起:org.dom4j.DocumentException:第14行出错 of document:元素类型“property”必须后跟任一个 属性规范,“&gt;”或“/&gt;”。嵌套异常:元素类型 “property”必须跟随属性规范,“&gt;”要么 “/&gt;” 中。在org.dom4j.io.SAXReader.read(SAXReader.java:482)at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499) ......还有7个
答案 0 :(得分:3)
name="lastName"
和column
之间缺少空格。
答案 1 :(得分:0)
错误清楚地说明了行号和错误。看看这个可能会有所帮助。
文档第14行出错:元素类型“属性”必须后跟任何属性规范,“&gt;”或“/&gt;”。嵌套异常:元素类型“属性”必须后跟属性规范,“&gt;”或“/&gt;”。
答案 2 :(得分:0)
这个错误通常发生是因为你的标签没有关闭。如果你在这里发布的内容,我猜你还没有关闭employee.hbm中的hibernate-mapping标签。试着这样做! 希望这有帮助!
答案 3 :(得分:0)
我有同样的错误:
元素类型&#34;属性&#34;必须后跟任一属性 规格,&#34;&gt;&#34;或&#34; /&gt;&#34;。嵌套异常:元素类型&#34;属性&#34; 必须遵循属性规范,&#34;&gt;&#34;或&#34; /&gt;&#34;。
我修复了它更改* .hbm.xml文件中的一行
列=&#34; ESAMBIGUA&#34;之间缺少空格。和长度=&#34; 1&#34; /&gt;
第一条评论,来自 Eduard Wirch 的评论真的帮助了我。谢谢!