<?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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306
</property>
<property name="connection.username">root</property>
<property name="connection.password">417000</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">jdbc</property>
<mapping resource="formBean/TbStudent.hbm.xml" />
<mapping resource="formBean/TbSubject.hbm.xml" />
</session-factory>
</hibernate-configuration>
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="formBean.TbStudent" table="tb_student" catalog="student">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="8" />
</property>
<property name="specialy" type="java.lang.String">
<column name="specialy" length="20" />
</property>
<set name="subject" table="tb_student_subject" lazy="false" >
<key column="student_id"/>
<many-to-many class="formBean.TbSubject" column="subject_id"/>
</set>
</class>
</hibernate-mapping>
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="formBean.TbSubject" table="tb_subject" catalog="student">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" />
</property>
</class>
</hibernate-mapping>
package formBean;
import java.util.List;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static SessionFactory sessionfactory;
static{
try{
Configuration config=new Configuration().configure();
sessionfactory=config.buildSessionFactory();
}catch (Exception e) {
System.out.println("加载hibernate配置文件发生错误,内容如下:");
e.printStackTrace();
}
}
public List query(String hql){
Session session=sessionfactory.openSession();
Transaction tx=session.beginTransaction();
List l=null;
try{
Query q=session.createQuery(hql);
l=q.list();
tx.commit();
}catch (Exception e) {
tx.rollback();
System.out.println("发生错误,内容如下:");
e.printStackTrace();
}finally{
session.close();
}
return l;
}
}
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<%@ page import="formBean.*" %>
<jsp:useBean id="h" class="formBean.HibernateUtil" scope="request"/>
<html>
<head>
<title>
index
</title>
</head>
<body topmargin="0">
<table width="52%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="12%"></td>
<td width="76%"></td>
<td width="12%"></td>
</tr>
<tr>
<td> </td>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0" background="image/bg.jpg">
<tr>
<td> </td>
</tr>
<tr>
<td><div align="center"><font size="6"><b>多对多的单向关联</b></font></div></td>
</tr>
<tr>
<td> </td>
</tr>
<tr align="center">
<td><table width="90%" border="1" cellspacing="0" cellpadding="2">
<tr align="center">
<td>姓名</td>
<td>性别</td>
<td>专业</td>
<td>选修科目</td>
</tr>
<%
List l=h.query("from TbStudent");
for(int i=0;i<l.size();i++){
TbStudent st=(TbStudent)l.get(i);
Set s=st.getSubject();
Iterator it=s.iterator();
String subjects="";
while(it.hasNext()){
TbSubject su=(TbSubject)it.next();
subjects=subjects+su.getName()+" ";
}
%>
<tr align="center">
<td><%=st.getName() %></td>
<td><%=st.getSex() %></td>
<td><%=st.getSpecialy() %></td>
<td align="left"><%=subjects %></td>
</tr>
<%
}
%>
</table></td>
</tr>
<tr>
<td> </td>
</tr>
</table></td>
<td> </td>
</tr>
</table>
</body>
</html>
运行时发生这个错误
发生错误,内容如下:
org.hibernate.exception.GenericJDBCException: could not initialize a collection: [formBean.TbStudent.subject#7]
各位大哥,怎么解决啊?