发现改密码的模块也不行了,是roles表:Caused by: com.jnetdirect.jsql.x: 無法插入 NULL 值到資料行 'user_name',資料表 '
RD.dbo.user_roles'; 資料行不得有 Null。UPDATE 已經失敗。
---
密码是在users表中啊,难道hibernate还会动到roles表

解决方案 »

  1.   

    lazy=true, Hibernate在底层实现了一个Proxy类,如果需要用到类的时候再装入。这跟一般的lazy load是一样的,在分布式应用中,如果用到Hibernate自已的collection 也同时用到lazy=true, 则一定要注意,这是不可能再实现lazy load的, 所以一定要在传给client端之前,全部装载所有要用到类,再传送。 不过这也要根据情况,如果确信client端并不可能用到所用的类,则不用全部装载。希望没有越说越糊涂。另外lazy=true且有继承关系的时候,要注意转型的问题。
      

  2.   

    确实越说我越糊涂了,如果用到Hibernate自已的collection,也同时用到lazy=true
    --
    这里collection对应的是roles还是users?
      

  3.   

    collection当然是roles,其实就是一个用户对应多个权限,一对多的关系
      

  4.   

    感觉user表和role表应该是many-to-many的关系才对啊用Set以后肯定是可以用List的你的cascade是all则update user表的时候会去update role 表的。你的role表的映射文件是怎么样的?
      

  5.   

    看来真的是很懒啊(lazy=true)
    嘿嘿,看不懂,帮你UP
      

  6.   

    我觉得lazy="true"应该就是提高了效率,放置一下子装载进来
      

  7.   

    是ont-to-many关系:
    我的roles表:
    ----
             user_name|user_role 
    admin admin
    Chinven km
    Hellen km
    Hippo km
    John km
    Lee km
    Lotus km
    Peter km
    Phoenix km
    Simon admin
    Simon km
    Tester km
    Tom km
    Tony km
    Walter km
      

  8.   

    user_name|role_name 
    admin admin
    Chinven km
    Hellen km
    Hippo km
    John km
    Lee km
    Lotus km
    Peter km
    Phoenix km
    Simon admin
    Simon km
    Tester km
    Tom km
    Tony km
    Walter km
      

  9.   

    谁有one-to-many的例子,发给我好吗? email/MSN:fanciex#sohu.com