请看下这两个Hibernate映射文件:
-----------------------------------------------Admin.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="entity"> <class name="Admin" table="gt_admin">
<id name="id" type="long">
<generator class="native" />
</id>
<property name="name" type="string" length="32" />
<property name="loginName" type="string" length="10" unique="true" />
<property name="loginPassword" type="string" length="32"/>
<property name="phone" type="string" length="32"/>
<property name="email" type="string" length="32"/>
<property name="enrollDate" type="date" />
<set name="modules" table="gt_admin_module" lazy="false" cascade="all" >
<key>
<column name="admin_id"></column>
</key>
<many-to-many column="module_id" class="Module"></many-to-many>
</set>
</class>
</hibernate-mapping>
----------------------------------------------Module.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="entity"> <class name="Module" table="gt_module">
<id name="id" type="long">
<generator class="native" />
</id>
<property name="name" type="string" length="32" />
<property name="user_flag" type="int" />
</class>
</hibernate-mapping>-----------------------------------------------------------------------------------------------------------
Module是功能模块类,Admin是管理员类,我将它们设置为多对多的关系,也就是说一个管理员可以有多个功能模块,一个功能模块也可以让多个管理员拥有。然后我测试时,增加和更新Module和Admin类都没错,可是删除Admin类时出错了,报的错误是因为外键约束的原因。数据库中的表我是采用 Hibernate自动生成的方式创建的。发生这种错误我可以理解,因为我删除module表记录的时候没有先删除admin_module表的记录,可是admin_module这个表它不是一个实体,而Hibernate中的hql语句都是对实体类操作的,我无法对admin_module这个表操作,我该怎么办?我是用的SSH结构,对Hibernate的使用时通过Spring提供的HibernateTemplate类操作的。谢谢大家的热心帮助^_^
-----------------------------------------------Admin.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="entity"> <class name="Admin" table="gt_admin">
<id name="id" type="long">
<generator class="native" />
</id>
<property name="name" type="string" length="32" />
<property name="loginName" type="string" length="10" unique="true" />
<property name="loginPassword" type="string" length="32"/>
<property name="phone" type="string" length="32"/>
<property name="email" type="string" length="32"/>
<property name="enrollDate" type="date" />
<set name="modules" table="gt_admin_module" lazy="false" cascade="all" >
<key>
<column name="admin_id"></column>
</key>
<many-to-many column="module_id" class="Module"></many-to-many>
</set>
</class>
</hibernate-mapping>
----------------------------------------------Module.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="entity"> <class name="Module" table="gt_module">
<id name="id" type="long">
<generator class="native" />
</id>
<property name="name" type="string" length="32" />
<property name="user_flag" type="int" />
</class>
</hibernate-mapping>-----------------------------------------------------------------------------------------------------------
Module是功能模块类,Admin是管理员类,我将它们设置为多对多的关系,也就是说一个管理员可以有多个功能模块,一个功能模块也可以让多个管理员拥有。然后我测试时,增加和更新Module和Admin类都没错,可是删除Admin类时出错了,报的错误是因为外键约束的原因。数据库中的表我是采用 Hibernate自动生成的方式创建的。发生这种错误我可以理解,因为我删除module表记录的时候没有先删除admin_module表的记录,可是admin_module这个表它不是一个实体,而Hibernate中的hql语句都是对实体类操作的,我无法对admin_module这个表操作,我该怎么办?我是用的SSH结构,对Hibernate的使用时通过Spring提供的HibernateTemplate类操作的。谢谢大家的热心帮助^_^
解决方案 »
- java打成.exe文件
- 请教高手一个超难问题!!!!!!
- 貌似很强的问题,从开贴到现在五六天了,无人解决,只好转战论坛别的模块
- 在myeclipse创建hibernate时,启动连接数据库!!但是出错,为什么?
- 如何做到不重启JBoss重新载入web-inf中的类
- 关于struts-json-plugin的一点一惑,求高人指点
- 如何完善这段程序使之健壮?->关于 Cannot find bean list in any scope
- 连接Informix数据库时,使用事务报错,请大家帮忙解决一下!
- Spring mvc静态资源加载不到
- 求助Java手册
- struts2+spring配置问题
- javax.naming.NameNotFoundException: FirstEjbBean not bound
2. 删除前,用 jdbc 方式来删除约束