请看下这两个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类操作的。谢谢大家的热心帮助^_^
解决方案 »
- ppt转换成图片的问题
- MyBatis 取出insert的lastid
- 有人用过fileUpLoad上传东西的吗?
- struts2 为什么出错,helloworld也不让我打印??
- smp邮件收发系统
- 急!~~~关于JAVA并发与数据同步问题
- spring注入问题,急急!!在线等
- Servlet中 如何手动去 销毁session?
- 请问下面代码的意思,我总是想不通为什么要lookup("java:comp/env");
- 请问谁知道那里有JBuilder7企业版下载(急)????
- struts2+spring配置问题
- javax.naming.NameNotFoundException: FirstEjbBean not bound
2. 删除前,用 jdbc 方式来删除约束