跟我学hibernate框架技术——在容器外实现多对一的实体映射技术第2部分内容摘要:

tomany”关系为例:其中 BankUser 是“ one”方的,而 Card 是“ many”方的。 如果 inverse 为 false,当 BankUser 类中的属性发生有变动,则连动的“ BankUser 对象”也会对其关联的“ Card 类对象”进行一次变动; 若 inverse 为 true,当 BankUser 类中的属性发生有变动,则连动的“ BankUser 对象”不会对其关联的“ Card 类对象”也进行一次变动 ( 3)正确地应用 inverse 但要注意的是,“ onetomany”关系中,最好设置 inverse=true将有助性能的改善。 实现本示例中的“一 对多” 下面根据 BankUser 获得其关联的各个 Card。 修改 WebHibernateDAOInterface 以添加下面的方法 public Set getBankUserCards(int personId) throws HibernateException。 在接口的实现类中增加一个获得关联数据的方法的功能实现 该代码主要是实现“一对多” public Set getBankUserCards(int personId) throws HibernateException{ Session session = ()。 BankUserPO onePerson = (BankUserPO) (, new Integer(personId))。 allCardsByOnePerson=()。 return allCardsByOnePerson。 } 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗 版必究 , 11/20 页 11 在测试用例中添加对上面的 getBankUserCards 方法的测试代码 @Test public void testGetBankUserCards() throws HibernateException, UnsupportedEncodingException { int personId=1234。 //应该根据数据库表中的数据选择 Set acturlReturn=(personId)。 (acturlReturn)。 (()0)。 } 执行测试用例 实现本示例中的“ 多对一” 多对一中 manytoone标签 通过 manytoone 元素 ,可以定义一种常见的与另一个持久化类的关联(这个表的一个外键引用目标表的主键字段)。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗 版必究 , 12/20 页 12 manytoone name=propertyName (1) column=column_name (2) class=ClassName (3) cascade=cascade_style (4) fetch=join|select (5) update=true|false (6) insert=true|false (6) propertyref=propertyNameFromAssociatedClass (7) access=field|property|ClassName (8) unique=true|false (9) notnull=true|false (10) optimisticlock=true|false (11) lazy=true|proxy|false (12) notfound=ignore|exception (13) entityname=EntityName (14) node=elementname|@attributename|element/@attribute|. embedxml=true|false / ( 1) name: 属性名。 ( 2) column (可选 ): 外间字段名。 它也可以通过嵌套的 column元素指定。 ( 3) class (可选 默认是通过反射得到属性类型 ): 关联的类的名字。 ( 4) cascade(级联) (可选 ): 指明哪些操作会从父对象级联到关联的对象。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗 版必究 , 13/20 页 13 cascade 属性设置为除了 none 以外任何有意义的值, 它将把特定的操作传播到关联对象中。 这个值就代表着 Hibernate 基本操作的名称, persist, merge, delete, saveupdate, evict, replicate, lock, refresh, 以及特别的值 deleteorphan 和 all,并且可以用逗号分隔符 来合并这些操作,例如, cascade=persist,merge,evict或 cascade=all,deleteorphan。 如果我们希望一个操作被顺着关联关系级联传播,那我们必须在映射文件中指出这一点。 例如: onetoone name=person cascade=persist/ 并且级联风格 (cascade style)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。