hibernate中的一个特性就是表关联,今天突然想到,要用上hibernate的表关联,要在bhm文件中进行配置,还要添加到声明式事务中才能用,是在对象调用关联set或者获得关联对象时,自动读取数据库。要是不用表关联的话,只要多要写一个方法来或者表关联的数据。我个人觉得用hibernate的表关联很麻烦 而且也没方便很多,  不知道这种想法对不对

解决方案 »

  1.   

    我废了半天劲终于,配出来一个,在<set>上加上lazy=false,每次对象创建的时候,set就加载上,然后从里面读出来的数据属性都是类似对象引用的格式 “[B@jdhjk”这样,要是把lazy=true的话,加载的时候就报session为空,或者session不存在错误, 我头都大了
      

  2.   

    不是可以通过表直接生成配置文件吗??根本就不用你来写的,这些应该由DBA来负责的
      

  3.   

    可以用MyEclipse来自动生成配置文件。
    自己也可以写,但是要注意很多地方。
    lazy参数是延迟加载。根据需要选择就是。
    为什么要用set?
      

  4.   

    我生成的bhm文件好像不能关联,没有实现关联,我在<set>里加上lazy才实现了关联
      

  5.   

    我就是用MyEclipse的,我这直接生成的不能加载关联对象,
    一对多关系,一表下面不是有个set的集合存储多表的对象
      

  6.   


    MyEclipse的话 你在数据库里面关系建好了  自动生成的代码 关系也就建好了
      

  7.   

    使用hibernate后,你会更多的关心对象模型了,当你把hibernate配置好后,以后与数据库打交道都是对象。符合OO
      

  8.   

    hibernate最大的就是延迟加载,缓存对象,避免运用程序直接访问数据库,减少数据库的负载。刚开始会绝对配置很繁琐,要正在的用好,没有3-4年的功夫恐怕很难。
    起码能了解:任何合理的控制二级缓存?hibernate什么时候使用外连接,左右连接?级联对象何时进行join,select,update,delete等
    掌握inverse,lazy,incase ,等关键子的使用,这样才能说,对hibernate 有个基本的了解。以前有个兄台刚来项目组,极力提倡项目中使用hibernate ,我问为什么,他回答,减少繁琐的jdbc,open,close等
    顿时崩溃
      

  9.   

    10楼  正解  磨刀不误砍柴工   用hibernate更加oop嘛
      

  10.   

    10楼说正确,一般在有关联关系的时候lazy建议设为true 这就是所谓的延迟加载,就是说当你真正用到这个对象的某个属性的时候它才会真正的发起sql语句...
    建议你去看看:孙卫琴老师的 《孙卫琴[1].精通Hibernate:Java对象持久化技术详解.pdf》里面讲的很细..
      

  11.   

    那怎么配置才算正确呢?   我是按照api上介绍的配置的,把lazy=true就出错,而且让lazy=true的时候,得到的set里面对象的属性值都是类似“[B@dfgh”这样数据
      

  12.   

    hibernate最大的就是延迟加载,缓存对象,避免运用程序直接访问数据库,减少数据库的负载。
      

  13.   

    架构的思想没理解哈~  他实现的是业务逻辑和数据库操作的分离!!让人们专注业务。。他是hao东西。。当然也存在问题。。3.2的话支持了JPA更加方便了。。(*^__^*) 嘻嘻……