如何防止JPA插入@JoinTable引用的视图中

问题描述 投票:0回答:1

我在PostgreSQL视图上有@JoinTable,但是唯一的方法我发现可以防止EclipseLink在插入时尝试从中插入/删除它们基础表是在视图本身上定义INSTEAD OF ... DO NOTHING规则。此外,如果未显示cascade声明,则会引发同步错误由EclipseLink表示该关系未标记为CascadeType.PERSIST。可以修改声明以消除数据库规则的需要吗?

@OneToMany(cascade = CascadeType.PERSIST)
@JoinTable(name = "v_provider_service",
    joinColumns = @JoinColumn(name = "service_id"),
    inverseJoinColumns = @JoinColumn(name = "branch_id"))
private Collection<BranchService> branchServices = new HashSet<>();
postgresql jpa eclipselink jointable
1个回答
0
投票
如果您不想将branchServices集合保存到数据库中,则可以使用@Transient JPA注释,如下所示:

@Transient private Collection<BranchService> branchServices = new HashSet<>();`

© www.soinside.com 2019 - 2024. All rights reserved.