Hibernate 积累?解决实体类或属性名与数据库关键字冲突除了在hbm.xml中加column属性或table属性来改变列名
Hibernate 积累
?解决实体类或属性名与数据库关键字冲突
除了在hbm.xml中加column属性或table属性来改变列名或数据库表名字外,如果移植数据后不准改数据库属性名的话还可以在column属性或table属性加上反引号把它当做字符串来处理。
?
cascade和inverse
generator子标签常用class属性increment Hibernate内部自己做累加,而不是数据库中做累加。所以集群下不要使用。indentity 数据库标示符自增长squence Oracle常用hilo 高低位 数据库保存高位字段,Hibernate累加地位字段,新插入数据由这两个字段组成,不会重复。uuid 生成主键不用访问数据库,Hibernate生成,插入效率很高,可移植性好,而像indentity,squence插入时都要先访问数据库。主键string类型,查询时候效率不高。native 根据数据库底层能力选择identity squence hiloassigned 手工分配主键foreigh 外键引用作为主键
N+1次查询和懒加载?? ? ? ?1.用Query.iterator可能会有N+1次查询。2.懒加载时获取关联对象。3.如果打开对查询的缓存即使用list也可能有N+1次查询。 