Spring Data JPA多对多保存设置

用户名

我有一个问题,我有一个多对多关系,我想从集合中添加或删除项目。*

@Entity
@DiscriminatorValue("P")
public class Patient extends User{
    private String firstName;
    private String lastName;
    @Embedded
    private Address address;

    @ManyToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL)
    @JoinTable(name="PatientOrganisation", joinColumns = {@JoinColumn(name="patientId")}, inverseJoinColumns = {@JoinColumn(name="organisationId")})
    private Set<Organisation> organisations = new HashSet<Organisation>();
}

*

@Entity
@DiscriminatorValue("O")
public class Organisation extends User{

    @Column(name="organisationName")
    private String name;

    @ManyToMany(mappedBy="organisations", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
    private Set<Patient> patients = new HashSet<Patient>();
    }

这是我的两个实体。

现在我试图写一个这样的自定义保存方法

公共接口OrganisationRepository扩展

PagingAndSortingRepository<Organisation, Long>{

    @Query (value="insert into patient_organisation(patient_id, organisation_id) values ([?1], [?2])", nativeQuery=true)
    Organisation addPatient(Long patientId, Long organisationId);
}

但这没有用,我得到这个错误。

无法使用executeQuery()发出数据操作语句。

有没有更聪明的方法可以执行此操作,或者有人可以帮助我解决该错误。

谢谢克里斯

维克托·查瓦塔尔(ViktorChvátal)

我不太确定为什么您决定为此编写本机查询,我只是通过将用户添加到组织的一组用户中,让ORM将记录添加到很多对很多记录中:

@Service
@Transactional
public class OrganisationDataService {
    @Autowired
    CrudRepository<Organisation, Long> organisations;

    @Autowired
    CrudRepository<User, Long> users;

    public void addUserToOrganisation(Long patientId, Long organisationId) {
        Organisation organisation = organisations.findOne(organisationId);
        User user = users.findOne(patientId);
        organisation.getPatients().add(user);
        organisations.save(organisation);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

spring-data-jpa多对多findByID

来自分类Dev

Spring Data Jpa多对多查询

来自分类Dev

具有多租户休眠的Spring-Data JPA

来自分类Dev

使用Spring Data JPA和Eclipse的多租户链接

来自分类Dev

从Spring Data JPA中的联接表(多对多)中仅选择特定列

来自分类Dev

多对多 Spring Data JPA 关系中的额外列,更改最少

来自分类Dev

Spring Data JPA 多对多,带有额外的列用户和角色

来自分类Dev

Spring Boot + Spring Data多租户

来自分类Dev

需要在Spring Data JPA中的一对多和多对一映射中更改默认联接列

来自分类Dev

需要在Spring Data JPA中的一对多和多对一映射中更改默认联接列

来自分类Dev

多对多额外列Spring JPA

来自分类Dev

spring jpa 多对多懒删除

来自分类Dev

如何使用JPA和Spring Data Rest管理一对多实体

来自分类Dev

Spring Data JPA- Hibernate多对多关系在链接实体表中插入null

来自分类Dev

使用Hibernate和Spring Data JPA进行多租户,架构方法如何工作

来自分类Dev

如何使用JPA和Spring Data Rest管理一对多实体

来自分类Dev

如何在 Spring Data JPA 中实现与额外列的多对多关系?

来自分类Dev

Spring Data-多列搜索

来自分类Dev

Spring Data MongoDB基于集合的多租户

来自分类Dev

Spring Data:findByEntityNot() 在多对多关系中

来自分类Dev

SPRING DATA JPA保存@OneToMany关系

来自分类Dev

Spring Data Jpa OneToMany保存双向

来自分类Dev

Spring Data Jpa 保存测试失败

来自分类Dev

Spring Data JPA - for 循环不保存实体

来自分类常见问题

如何设置Spring Data JPA存储库?

来自分类Dev

如何设置Spring Data JPA存储库?

来自分类Dev

Spring Data Jpa - 缓存

来自分类Dev

Spring Data JPA @OneToMany

来自分类Dev

单向多对一的Spring数据jpa规范

Related 相关文章

热门标签

归档