Java 在Hibernate中,我在运行时遇到以下错误
在Hibernate中,我在运行时遇到以下错误 1。employee.hbm.xmlJava 在Hibernate中,我在运行时遇到以下错误,java,hibernate,orm,Java,Hibernate,Orm,在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"> <hi
<?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>
<?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>
4。StoreData.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;
}
}
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:警告:找不到记录器的附加器
(org.hibernate.cfg.Environment)。log4j:警告请初始化
log4j系统正常工作。线程“main”中出现异常
org.hibernate.InvalidMappingException:无法分析映射
来自位于的resource 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行错误
文档类型:元素类型“property”后面必须跟
属性规范“>”或“/>”。嵌套异常:元素类型
“属性”后面必须跟属性规范“>”或
"/>". 位于org.dom4j.io.SAXReader.read(SAXReader.java:482)
org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
... 还有7个
错误清楚地说明了行号和错误。看看这一点可能会有所帮助
文档第14行出错:元素类型“property”后面必须跟属性规范“>”或“/>”。嵌套异常:元素类型“property”后面必须跟属性规范“>”或“/>” 在
name=“lastName”
和列之间缺少空格
此错误通常是因为您的标记未关闭。对于您在此处发布的内容,我猜您尚未关闭employee.hbm中的hibernate映射标记。请尝试这样做!
希望这有帮助 我也犯了同样的错误:
元素类型“property”后面必须跟任意一个属性
规格“>”或“/>”。嵌套异常:元素类型“属性”
必须后跟属性规范“>”或“/>”
我修改了*.hbm.xml文件中的一行,修复了这个问题
column=“ESAMBIGUA”和length=“1”/>
第一条评论,来自Eduard Wirch的评论真的帮助了我。谢谢 很抱歉,但这并不能解决问题。我收到了一些其他错误。谢谢,但您要求我修改jar代码,这不是问题所在。DOM解析器正在尝试解析文件。谢谢,但在Java空间中,此属性不起作用。谢谢,先生,我之前已经关闭了该标记。经过3天的斗争,我学到了三件事,请注意:1.如果将generator标记定义为increment,则java类中的注释setID.2.In&mapping hibernate.hbm.xml属性名称应该完全相同(这是我的错误)。3.在hibernate.cfg.xml中应该非常精确地给出xml的路径。。。。。。。。。。