跟我学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)。跟我学hibernate框架技术——在容器外实现多对一的实体映射技术第2部分
相关推荐
18 7.模块功能应可预测 模块的功能应能预测,如果一个模块可以当做一个黑盒子,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。 带有内部存储器的模块的功能可能是不可预测的,因为它的输出可能取决于内部存储器(例如某个标记) 的状态。 由于内部存储器对于上级模块而言是不可见的,所以这样的模块不易理解、难于测试和维护。 如果一个模块只完成一个单独的子功能,则表现高内聚;但是
...........................................70配置 HTTP 隧道连接 ...............................................................................................................70建立客户端与 WebLogic 服务器之间的连接 ...
合 格 砼运输车运输 合格 合格 下基层准备 材料配合比实验 检测下承层 测量、放样 摊铺机摊铺格 碾压成形 检测 交通控制 备料 拌和 局部返修或返工 广州市公路工程公司 /郴州市交通路桥有限公司 联营 体 临长高速公路投标文件 技术质询表 75 帽梁施工工艺图 安装牛腿 吊装工字棚 安装底模 修凿接头砼 测量放样 调整底模板 绑扎钢筋 安装侧模板 浇注砼 养生 钢筋制作 广州市公路工程公司
3 梁体宽 +15, 0 4 顶板厚 +10, 0 5 腹板厚 +10, 0 6 底板厚 +10, 0 7 腹板间距 177。 10 8 孔道位置 2 9 梁体纵向中线相对旁弯最大偏移值 3 10 垂直度 每米不大于 3 吊线尺量不少于 5处 11 平整度 每米不大于 3 1米靠尺测量不少于 5处 ㈤混凝土试件的制作 在箱梁混凝土浇筑时按以下进行取样留置试件,每个浇筑段制作试件不少于 12 组:
} public void setPersonID(int personID) { = personID。 } private String name。 private char sex。 private float weight。 private int personID。 public CatPO() { } } 映射前面的 CAT 数据库表 声明它的映射元数据 杨教授工作室
工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 10/23 页 10 ?xml version=? !DOCTYPE hibernatemapping PUBLIC //Hibernate/Hibernate Mapping DTD hibernatemapping class name= table=person id name=person_ID