一个表A(外键表)关联了很多个表(主键表)B,C,D.....,A的pojo里自然就有很多个其他表的对象.
如果这样:
A a= new A();
a.getB().setID(123);//这里报空指针,应该是B没实例化貌似只能这样:
A a= new A();
a.setB(new B().setID(123));如果按第二种办法的话就要new 很多个对象了.感觉有点不太好,有解决办法吗?

解决方案 »

  1.   

    可以在 A  中 添加第二个构造方法,这个构造 方法在初始化的时候, 将所有对象一次性初始化了, 以后就不用再 new 了
      

  2.   

    a.getB().setID(123);//这里报空指针,应该是B没实例化
    应该是延迟加载了吧
      

  3.   

    2楼的,我只知道延迟加载是在读取数据的时候要设置.我设了.
    现在我做的是设置POJO的值然后保存
      

  4.   

    就因为你设定了所以才会出现null,不信你不设定试试看
      

  5.   

    hibernate 乱用, 后果很严重地
      

  6.   

     多用组合的方式 , 或者用 工程模式 , 如果是业务层 可以用 spring 框架 ,  或者自己写一个抽象工厂模式! 这样就可以避免new 一对对象出来 , 只用到这个对象的一个方法。 楼主可以研究一下 工厂模式 和 spring框架 对你会有帮助!
      

  7.   

    hibernate 乱用, 后果很严重地