Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Hibernate实践笔记

作者:未知 来源:月光软件站 加入时间:2005-6-5 月光软件站

1、如何指定使用hibernate.properties还是 hibernate.cfg.xml?
 //使用hibernate.properties
 //通过addClass装入实体类
 Configuration cfg = new Configuration().addClass(Department.class);
 cfg.setProperty("hibernate.show_sql", "true");//指定属性
 
 //使用hibernate.cfg.xml
 Configuration cfg = new Configuration().configure();
2、在Oracle表中指定使用Sequence
 在Department.hbm.xml中使用如下描述:
 <id name="id"  type="long" column="DEPTNO">
   <generator class="sequence">
    <param name="sequence">DEPTNO_sequence</param>
    <!--DEPTNO_sequence是序列的名称-->
   </generator> 
 </id>
3、多表操作
 配置 hibernate.cfg.xml 时注意元素书写次序:
 <mapping resource= ...../>
 <mapping resource= ...../>
 <class-cache class=....../>
 <class-cache class=....../>
 表中外键定义    <many-to-one name="deptNo" not-null="true"/>
 表中被参照的键 <bag name="emp" lazy="true" inverse="true" cascade="all">
    <key column="deptNo"/>
    <one-to-many class="Emp"/>
   </bag>
4、自动产生数据库表 
 Configuration cfg = new Configuration()
  .setProperty(Environment.HBM2DDL_AUTO, "create");
5、查询结果中包含null的项
 对于一些数字项包含null,定义该项时必须使用wrapper类型,而不能是primitive类型,例如使用Double、Float等,而不能是double、float否则会抛出如下错误:
 org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of org.hibernate.scott.Emp.setComm
 at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:203)
 at org.hibernate.tuple.PojoTuplizer.setPropertyValues(PojoTuplizer.java:173)
 at org.hibernate.persister.entity.BasicEntityPersister.setPropertyValues(BasicEntityPersister.java:2900)
 at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:113)
 at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:506)
 at org.hibernate.loader.Loader.doQuery(Loader.java:415)
 at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:210)
 at org.hibernate.loader.Loader.doList(Loader.java:1557)
 at org.hibernate.loader.Loader.list(Loader.java:1540)
 at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
 at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
 at org.hibernate.impl.SessionImpl.list(SessionImpl.java:791)
 at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
 at org.hibernate.scott.Main.viewAllScottSlow(Main.java:89)
 at org.hibernate.scott.Main.main(Main.java:129)
Caused by: net.sf.cglib.beans.BulkBeanException
 at org.hibernate.scott.Emp$$BulkBeanByCGLIB$$9815f405.setPropertyValues(<generated>)
 at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:200)
 ... 14 more
Caused by: java.lang.NullPointerException
 ... 16 more




相关文章

相关软件