Spring JPA manyToMany未在关联表中持久化

Spring JPA manyToMany未在关联表中持久化,spring,hibernate,jpa,Spring,Hibernate,Jpa,我正在尝试以下单元测试: @Test @Transactional public void thatFolderLocationAssociationTableIsWorking() { Location l1 = new DomesticLocation(); l1.setDeptName("Test name 1"); Location l2 = new DomesticLocation(); l2.se

我正在尝试以下单元测试:

    @Test
    @Transactional
    public void thatFolderLocationAssociationTableIsWorking() {
        Location l1 = new DomesticLocation();
        l1.setDeptName("Test name 1");
        Location l2 = new DomesticLocation();
        l2.setDeptName("Test name 2");

        KMLFolder k1 = new KMLFolder();
        k1.setName("Test name 1");
        KMLFolder k2 = new KMLFolder();
        k1.setName("Test name 2");

        List<Location> locations = new ArrayList<Location>();
        locations.add(l1);
        locations.add(l2);
        k1.setLocations(locations);
        kmlFolderServiceImpl.save(k1);

        assertEquals("Test name 1", kmlFolderServiceImpl.find(1L).getLocations().get(0).getDeptName());
        assertEquals("Test name 2", kmlFolderServiceImpl.find(1L).getLocations().get(1).getDeptName());

                //The following line gets the NPE
        assertEquals("Test name 1", locationServiceImpl.find(1L).getKmlFolderList().get(0).getName());
    }
运行测试时,正在创建相应的表。以下是控制台输出:

Hibernate: 
    create table project.LOCATION_KMLFOLDER (
        KMLFOLDER_ID bigint not null,
        LOCATION_ID bigint not null
    ) ENGINE=InnoDB 
...
Hibernate: 
    alter table project.LOCATION_KMLFOLDER 
        add index FK_lqllrwb2t5cn0cbxxx3ms26ku (LOCATION_ID), 
        add constraint FK_lqllrwb2t5cn0cbxxx3ms26ku 
        foreign key (LOCATION_ID) 
        references project.KMLFolder (id)
Hibernate: 
    alter table .LOCATION_KMLFOLDER 
        add index FK_ckj00nos13yojmcyvtefgk9pl (KMLFOLDER_ID), 
        add constraint FK_ckj00nos13yojmcyvtefgk9pl 
        foreign key (KMLFOLDER_ID) 
        references project.Locations (id)

控制台没有像我预期的那样在LOCATION_knl文件夹表中显示插入内容。有没有想过为什么会发生这种情况?

您正在初始化Hibernate忽略的关联的反向端,而不是(或者除了)初始化Hibernate不忽略的关联的所有者端

所有者端是没有
mappedBy
属性的端

Hibernate: 
    create table project.LOCATION_KMLFOLDER (
        KMLFOLDER_ID bigint not null,
        LOCATION_ID bigint not null
    ) ENGINE=InnoDB 
...
Hibernate: 
    alter table project.LOCATION_KMLFOLDER 
        add index FK_lqllrwb2t5cn0cbxxx3ms26ku (LOCATION_ID), 
        add constraint FK_lqllrwb2t5cn0cbxxx3ms26ku 
        foreign key (LOCATION_ID) 
        references project.KMLFolder (id)
Hibernate: 
    alter table .LOCATION_KMLFOLDER 
        add index FK_ckj00nos13yojmcyvtefgk9pl (KMLFOLDER_ID), 
        add constraint FK_ckj00nos13yojmcyvtefgk9pl 
        foreign key (KMLFOLDER_ID) 
        references project.Locations (id)