Hibernate问题

1.hibernate.properties和hibernate.cfg.xml都是放在classes目录下

2.如果配置文件为hibernate.properties.则需要将javaBeanClassName.hbm.xml文件放在类的包的根目录下。并且要在Java中写成

  Configuration config = new Configuration();                                      
        config.addClass(xxx.class);

3.如果配置文件为hibernate.cfg.xml。则需要将javaBeanClassName.hbm.xml文件放在与hibernate.cfg.xml文件相同的目录下,即webApp/WEB-INF/classes/javaBeanClassName.hbm.xml。并且在Java中写成:

Configuration config = new Configuration();                                      
        config.configure();

4.如果在映射文件中配置<id>的<generator>元素为native时,它会默认到当前数据库中寻找hibernate_sequence(在Oracle或postgresql数据库中)。注意,数据库的序列在每个数据库中是独立存在的。如果有一个数据库名为"my"且有一个序列名为my_sequence, 还有另一个数据库名为"you"且有一个名为my_sequence序列,这两者是可以合法存在的。

5.List<E> result = session.createQuery("fromCLASSNAME").list();

注意,from后面跟着的是类名,并且要注意大小写,因为它是根据Java的特点(大小敏感)来确定的。

6.在hibernate中配置check in约束:

<class name="org.blog.admin.beans.Administrator" table="administrator" lazy="false"check="admin_status in ('close','open') ">

7.在Hibernate配置中,每个class元素中,都有有一个lazy属性, 其值可以设置为true或false(默认为true).如果设置为true,则代表对对象进行延迟加载.

8.在一个复杂的项目中,在建表时,千万要测试完之后再去做其他事,要不在后期的操作中,会发生比较多的问题.这是一个教训.

相关推荐