急 hibernate总是报错 求大神指导

tiaozhanmaidi 2013-03-30 11:32:34
刚开始学hibernate

错误信息
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.ExceptionInInitializerError
at cn.hongle.hibernate.Many2Many.add(Many2Many.java:47)
at cn.hongle.hibernate.Many2Many.main(Many2Many.java:14)
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource cn/hongle/domain/Student.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at cn.hongle.hibernate.HibernateUtils.<clinit>(HibernateUtils.java:17)
... 2 more
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:502)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
... 9 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 13; columnNumber: 48; Element type "Set" must be declared.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
... 10 more



hibernate.cfg.xml:


<?xml version="1.0"?>
<!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">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="connection.url">jdbc:sqlserver://192.168.0.15:1433;DatabaseName=hibernate</property>
<property name="connection.username">sa</property>
<property name="connection.password">123</property>

<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

<property name="hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
<mapping resource="cn/hongle/domain/Student.hbm.xml"/>
<mapping resource="cn/hongle/domain/Teacher.hbm.xml"/>
</session-factory>
</hibernate-configuration>


Teacher.hbm.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="cn.hongle.domain">

<class name="Teacher" table="teacher">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<Set name="students" table="teacher_student" inverse="true">
<key column="teacher_id"/>
<many-to-many class="Student" column="student_id"/>
</Set>

</class>
</hibernate-mapping>


Student.hbm.xml:

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
package="cn.hongle.domain">

<class name="Student" table="student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<Set name="teachers" table="teacher_student">
<key column="student_id"/>
<many-to-many class="Teacher" column="teacher_id"/>
</Set>


</class>

</hibernate-mapping>

Many2Many.java

package cn.hongle.hibernate;

import java.util.HashSet;
import java.util.Set;

import org.hibernate.Session;
import org.hibernate.Transaction;

import cn.hongle.domain.Student;
import cn.hongle.domain.Teacher;

public class Many2Many {
public static void main(String[] args) {
add();

}

static void add(){
Session s=null;
Transaction tx=null;
try{
Set<Teacher> ts = new HashSet<Teacher>();

Teacher t1 = new Teacher();
t1.setName("t1 name");
ts.add(t1);

Teacher t2 = new Teacher();
t2.setName("t2 name");
ts.add(t2);

Set<Student> ss = new HashSet<Student>();
Student s1 = new Student();
s1.setName("s1");
ss.add(s1);

Student s2 = new Student();
s2.setName("s2");
ss.add(s2);

t1.setStudents(ss);
t2.setStudents(ss);

s1.setTeachers(ts);
s2.setTeachers(ts);

s = HibernateUtils.getSession();
tx = s.beginTransaction();
s.save(t1);
s.save(t2);
s.save(s1);
s.save(s2);
tx.commit();

}finally{
if(s!=null)
s.close();
}
}

}

...全文
145 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiaozhanmaidi 2013-03-30
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
<Set 小写的set
真的是非常谢谢,我找了半天没找到,真的是初学者啊
  • 打赏
  • 举报
回复
<Set 小写的set

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧