关闭

关闭

封号提示

内容

首页 Hibernate实现级联删除.doc

Hibernate实现级联删除.doc

Hibernate实现级联删除.doc

上传者: sldaflk 2011-06-28 评分 4.5 0 66 9 299 暂无简介 简介 举报

简介:本文档为《Hibernate实现级联删除doc》,可适用于IT/计算机领域,主题内容包含Hibernate实现级联删除      版权所有,转载请注明出处zhyiwwwcom我的使用背景:       有新闻和新闻类型一条新闻只能属于一符等。

Hibernate实现级联删除      版权所有,转载请注明出处zhyiwwwcom我的使用背景:       有新闻和新闻类型一条新闻只能属于一个类型一种新闻类型可以对应多条新闻。       在数据库中新闻受新闻类型外键约束并可以级联删除       在Hibernate中实现级联删除       jkakfl (一)创建数据库表和关系DROPTABLENewsTypeCREATETABLENewsType(TypeIDNUMBER()PRIMARYKEYNOT,TypeNameVARCHAR()NOT,DirNameVARCHAR()NOT,TemplateNameVARCHAR()NOT)DROPSEQUENCENEWSTYPESEQCREATESEQUENCENEWSTYPESEQINCREMENTBYSTARTWITH DROPTABLENewsCREATETABLENews(NewsIDNUMBER()PRIMARYKEYNOT,TypeIDNUMBER()NOT,TitleVARCHAR()NOT,HitCountNUMBER()DEFAULTNOT,IssuseDateDATENOT,DeployerIDNUMBER()NOT,OriginVARCHAR()NOT,URLVARCHAR()NOT,KEYWORDSVARCHAR(),PriorityNUMBER()DEFAULTNOT,SpecialVARCHAR(),DescriptionVARCHAR(),AuthorVARCHAR(),TopicVARCHAR())DROPSEQUENCENEWSSEQCREATESEQUENCENEWSSEQINCREMENTBYSTARTWITH 在oralce中设置数据表的约束关系如下图:      (二)实现数据表到POJO的映射映射类我们略去此处主要显示配置文件        Newshbmxml<xmlversion=""encoding=""><!DOCTYPEhibernatemappingPUBLIC"HibernateHibernateMappingDTDEN""http:hibernatesourceforgenethibernatemappingdtd"><!DONOTEDIT:Thisisageneratedfilethatissynchronized><!byMyEclipseHibernatetoolintegration><!CreatedFriNov::CST><hibernatemappingpackage="comscenechinavrmodel"><classname="News"table="NEWS"lazy="false"><idname="newsid"column="NEWSID"type="javalangLong"><generatorclass="sequence"><paramname="sequence">NEWSSEQ<param><generator><id><propertyname="typeid"column="TYPEID"type="javalangLong"not="true"><propertyname="title"column="TITLE"type="javalangString"not="true"><propertyname="hitcount"column="HITCOUNT"type="javalangLong"not="true"><propertyname="issusedate"column="ISSUSEDATE"type="javautilDate"not="true"><propertyname="deployerid"column="DEPLOYERID"type="javalangLong"not="true"><propertyname="origin"column="ORIGIN"type="javalangString"not="true"><propertyname="url"column="URL"type="javalangString"not="true"><propertyname="keywords"column="KEYWORDS"type="javalangString"><propertyname="priority"column="PRIORITY"type="javalangLong"not="true"><propertyname="special"column="SPECIAL"type="javalangString"><propertyname="description"column="DESCRIPTION"type="javalangString"><propertyname="author"column="AUTHOR"type="javalangString"><propertyname="topic"column="TOPIC"type="javalangString"><setname="newsset"cascade="all"inverse="true"lazy="false"orderby="NEWSDETIALID"table="Newsdetials"><keycolumn="newsid"><onetomanyclass="Newsdetials"><set><setname="picset"cascade="all"inverse="true"lazy="false"table="Picture"><keycolumn="newsid"><onetomanyclass="Picture"><set><manytoonename="newstype"column="TYPEID"entityname="commodelNewstype"insert="false"update="false"><class><hibernatemapping>         Newstypehbmxml<xmlversion=""><!DOCTYPEhibernatemappingPUBLIC"HibernateHibernateMappingDTDEN""http:hibernatesourceforgenethibernatemappingdtd"><hibernatemapping><!CreatedbytheMiddlegenHibernateplugin http:bossbekknobossmiddlegenhttp:hibernatesourceforgenet><classname="comscenechinavrmodelNewstype"table="NEWSTYPE"lazy="false"><idname="typeid"type="javalangLong"column="TYPEID"><generatorclass="assigned"><id><propertyname="typename"type="javalangString"column="TYPENAME"not="true"length=""><propertyname="dir"type="javalangString"column="DIRNAME"not="true"length=""><propertyname="templatename"type="javalangString"column="TEMPLATENAME"not="true"length=""><!associations><setname="news"cascade="alldeleteorphan"inverse="true"><keycolumn="TYPEID"><onetomanyclass="commodelNews"><set><class><hibernatemapping> 其实这是个双向以对多关系。 (三)在DAO中实现级联删除删除新闻类型记录daogetNewsTypeDAO()deleteObjects(typeIDs)typeID是新闻类型的主键执行此操作将会删除所有此新闻类型的新闻。news是一个Set类型的变量用来存放此类型的所有的新闻。(四)删除时遇到的问题在数据库中如果设置了约束关系那么一定要允许级联删除否则你在执行删除时会抛出异常。如果我们的数据库关系设置如下:   画圈的那个选项没有选上的话那么我们在执行的时候就会抛出如下的异常:::ERRORhttpProcessor(JDBCExceptionReporterjava:ORA:违反完整约束条件(SCNEWSTYPERELATIONS)已找到子记录日志 rghibernateexceptionConstraintViolationException:couldnotexecuteupdateqeryatorghibernateexceptionSQLStateConverterconvert(SQLStateConverterjva:)atorghibernateexceptionJDBCExceptionHelperconvert(JDBCExceptionHelprjava:)atorghibernatehqlastexecBasicExecutorexecute(BasicExecutorjava:) 问题的关键在如下两点:      数据库中要允许数据表的级联删除      在映射文件中要将级联删除配置正确  

类似资料

编辑推荐

《建筑空间组合论(第3版)》(彭一刚).pdf

实用针灸处方(欧广生).pdf

Joseph F. Fletcher Studies on Chinese and Islamic Inner Asia(1995).pdf

2_贝叶斯决策理论.ppt

世界阴谋史.pdf

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • 净空法师信心铭.doc

  • 58数学欣赏.pdf

  • 长篇小说创作经验谈.pdf

  • 华点校 中华书局 年月第1版】.…

  • 在职管理日记.pdf

  • 处世36计.pdf

  • 文史资料存稿选编-19-军政人物…

  • 生物技术制药.ppt

  • 文史资料存稿选编-07-抗日战争…

  • 资料评价:

    / 6
    所需积分:2 立即下载

    意见
    反馈

    返回
    顶部