我在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<>();
branchServices
集合保存到数据库中,则可以使用@Transient
JPA注释,如下所示:@Transient
private Collection<BranchService> branchServices = new HashSet<>();`