各种属性设置 几乎都试过了,还是不行,找了很多 以下是 数据库Mysql5.0Demp表
demp_id int 主键 自增demo_name varcharEmp表emp_id 主键 自增emp_name varcharwaijian int 无申明
主表 Demp配置文件
<hibernate-mapping>
<class name="pojo.Demp" table="demp" catalog="hibnate_demo">
<id name="dempId" type="java.lang.Integer">
<column name="demp_id" />
<generator class="native" />
</id>
<property name="dempNames" type="java.lang.String">
<column name="demp_names" length="20" />
</property>
<set name="emp" inverse="true" lazy="false" cascade="all" >
<key column="waijian"></key>
<one-to-many class="pojo.Emp" />
</set>
</class>
</hibernate-mapping> 子表Emp
<hibernate-mapping>
<class name="pojo.Emp" table="emp" catalog="hibnate_demo">
<id name="empId" type="java.lang.Integer">
<column name="emp_id" />
<generator class="native" />
</id>
<property name="empNames" type="java.lang.String">
<column name="emp_names" length="20" />
</property>
<property name="waijian" type="java.lang.Integer">
<column name="waijian" />
</property>
<many-to-one name="demp" class="pojo.Demp" insert="false"
fetch="join" update="false">
<column name="waijian" />
</many-to-one>
</class>
</hibernate-mapping>使用的是 HibernateDaoSupportpublic class BaseDao extends HibernateDaoSupport { public void save(Object obj){
getHibernateTemplate().save(obj);
}
public void delete(Object obj){
getHibernateTemplate().delete(obj);
}
} public static void main(String[] args) { ApplicationContext conxt = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
Services dao = (Services) conxt.getBean("CardServices"); Demp demp = new Demp();
demp.setDempId(57);//删除id为57的信息
this.dao.delete(demp);
} 这样只能删除 Demp主表,没级联 实在让我郁闷啊,大哥大姐们,好心人们,帮忙看看啊
demp_id int 主键 自增demo_name varcharEmp表emp_id 主键 自增emp_name varcharwaijian int 无申明
主表 Demp配置文件
<hibernate-mapping>
<class name="pojo.Demp" table="demp" catalog="hibnate_demo">
<id name="dempId" type="java.lang.Integer">
<column name="demp_id" />
<generator class="native" />
</id>
<property name="dempNames" type="java.lang.String">
<column name="demp_names" length="20" />
</property>
<set name="emp" inverse="true" lazy="false" cascade="all" >
<key column="waijian"></key>
<one-to-many class="pojo.Emp" />
</set>
</class>
</hibernate-mapping> 子表Emp
<hibernate-mapping>
<class name="pojo.Emp" table="emp" catalog="hibnate_demo">
<id name="empId" type="java.lang.Integer">
<column name="emp_id" />
<generator class="native" />
</id>
<property name="empNames" type="java.lang.String">
<column name="emp_names" length="20" />
</property>
<property name="waijian" type="java.lang.Integer">
<column name="waijian" />
</property>
<many-to-one name="demp" class="pojo.Demp" insert="false"
fetch="join" update="false">
<column name="waijian" />
</many-to-one>
</class>
</hibernate-mapping>使用的是 HibernateDaoSupportpublic class BaseDao extends HibernateDaoSupport { public void save(Object obj){
getHibernateTemplate().save(obj);
}
public void delete(Object obj){
getHibernateTemplate().delete(obj);
}
} public static void main(String[] args) { ApplicationContext conxt = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
Services dao = (Services) conxt.getBean("CardServices"); Demp demp = new Demp();
demp.setDempId(57);//删除id为57的信息
this.dao.delete(demp);
} 这样只能删除 Demp主表,没级联 实在让我郁闷啊,大哥大姐们,好心人们,帮忙看看啊
解决方案 »
- 同一个页面加载多个Ajax的问题
- 帮我看看怎么了。
- webservice+hibernate对象关系问题
- ext combo
- 谁有关于Oracle:设计,开发,维护 Web:html,css,javascript 服务器,数据安全 的笔试题呀
- 在APACHE中如何实现根据客户端IP访问不同的主机
- Tomcat安装成功以后,浏览器地址栏中的小图标是怎么设置的?
- 配置数据源的问题,已经快一天了,哪位高手帮帮忙????
- javabean怎么学
- 请问怎样调整JTable中的列宽
- 谁有Xdoclet-plugins-1.0.3.rar
- 一个Action创建几个ActionForm,如果是一个Form,那form中原有数据能保存吗???
demp.setDempId(57);//删除id为57的信息
this.dao.delete(demp); 很可能是这里的问题。先在数据库中找一个有的ID, 然后先用 ID load出来 然后把它delete了。session.delete( session.load(Demp.class , ID) );
1)一端中对多端采取了延迟加载策略:lazy="true"默认
2)将多端的传播持久性(级联)设置为最全面的全部级联(包括孤儿模式):cascade="all-delete-orphan"
3)将维护关系的控制权交给多端:inverse="true" 在从表的关系映射文件中:
1)多端对一端采取了预先抓取策略:fetch="join"(并且要把一端主表映射文件的class标签的lazy属性设置为false)
2)将一端的传播持久性(级联)设置为存储、更新:cascade="save-update"
没写吧 没写程序不知道 级联修改的吧
Services dao = (Services) conxt.getBean("CardServices"); Demp demp = new Demp();
demp.setDempId(57);//删除id为57的信息
this.dao.delete(demp); }你这方法都没写完整~~怎么看啊
而且主键设置的是自动增长你还给赋值
demp.setDempId(57);//删除id为57的信息
this.dao.delete(demp);
同意4楼兄弟的说法,你的代码里 delete删除的对象应该处于Persist状态 你自己new出来的Demp对象中 Set是没有属性的 那么你删除之后是不会删除关联对象的