V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dbpe
V2EX  ›  Java

掉 Hibernate 的坑了

  •  
  •   dbpe · 2018-06-03 22:47:42 +08:00 · 4063 次点击
    这是一个创建于 2362 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在我有俩个类

    Student 和 Teacher

    都是 ManyToMany 的,用 @JoinTable 做双向关联.

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinTable(name = "PK_S_T", joinColumns = @JoinColumn(name = "teacher_id"),
    inverseJoinColumns = @JoinColumn(name = "stu_id"))
    Set xxset;


    保存的

    Teacher teacher = TeacherServer.get(cid);
    Student student = studentService.get(sid);
    teacher .getStudentList().add(student);
    session.update(teaching_class);



    中间表不插入数据...立马 session.get 能看到刚才插入的 student...

    Google 很久..没找到解决方法..求大佬..指教
    7 条回复    2018-06-04 10:53:31 +08:00
    bnm965321
        1
    bnm965321  
       2018-06-03 23:19:51 +08:00
    session.update(teaching_class);

    这一句是将对象持久化到数据库的意思吗?是不是写错了,teaching_class 哪来的
    carakan
        2
    carakan  
       2018-06-03 23:55:04 +08:00 via Android
    @bnm965321 update 是持久化到数据库的,改了一些方法 save saveOrupdate 都试过了,不行,那个 teaching_class 是 teacher(复制出删减了一些代码)
    dbpe
        3
    dbpe  
    OP
       2018-06-04 07:20:32 +08:00
    问题解决...早上醒过来的时候..想了下..昨天查到的资料都是 sessionFactory.getCurrentSession 获取的..但是我现在为了 LAZY 的问题..用 OpenSessionInViewFilter 了..那么对应的应该是 sessionFactory.getOpenSession...那么对应的方案应该是 Opensession 的问题..
    dbpe
        4
    dbpe  
    OP
       2018-06-04 07:20:45 +08:00
    @bnm965321 谢谢大佬回复
    airfling
        5
    airfling  
       2018-06-04 07:24:08 +08:00 via Android
    可以使用 spring data jpa 底层就是 hibernate
    szq8014
        6
    szq8014  
       2018-06-04 08:30:46 +08:00
    commit 了没?
    iyangyuan
        7
    iyangyuan  
       2018-06-04 10:53:31 +08:00 via iPhone
    可怕
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3086 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:43 · PVG 21:43 · LAX 05:43 · JFK 08:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.