Hibernate 随笔总结
1.关于<set><key column="??"/></set>
column 的取值是当前**.hbm.xml的id的column的值,也即:column值为当前类id值。
2.关于cascade理解。
* 表room (r_id,u_id,r_name) 记录(rid1,uid1,roomName1).
* 表user (u_id,u_name) 记录(uid1,uName1).
其中 room : user = 1 : N
例1: 如果同时想把 user的uName1字段值改为uName2,room的roomName1改为roomName2。若此时user.hbm.xml的cascade="update",那么:
room.setName(roomName2);
user.setName(userName2);
session.update(user);
就可以同时把roomName也同时更新的room中。
因为cascade的存在,所以,更改user的同时,room也同时级联的被修改,而不用编写
session.update(room)语句。
3.尽量将页面代码中的sql语句直接嵌入*.hbm.xml文件中,而不要出现在代码里。这样方便了对sql语句的维护,防止了硬编码。然后在通过构建类似 List query(Map<String,Object>) {},这样的函数来取得*.hbm.xml中sql的查询条件变量以及给其赋值。
4.首次用到了用throws Throwable类来代替Excetion, Throwable是Error和Exception的父类。相关文章上网上去了解。