在我的User对象中,我有以下连接表:
@JsonIgnore
@ManyToMany
@JoinTable(
name = "JHI_USER_AUTHORITY",
joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name")})
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<Authority> authorities = new HashSet<>();
我还在User对象上有一个触发器,用于在行创建时插入主ID
TRIGGER TRG_JHI_USER_ID
BEFORE INSERT
ON JHI_USER
FOR EACH ROW
DECLARE
BEGIN
SELECT SEQ_USER.NEXTVAL INTO :NEW.ID FROM DUAL;
END TRG_JHI_USER_ID;
现在,当我创建一个用户时,我得到以下异常:
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constraint (PORTALUSER.FK_USER_ID) violated - parent key not found
似乎在尝试保留User对象时,它在执行触发器之前也会持久保存多对多表,因此没有找到user_id,如果能够正确理解的话。如何在不挖掘复杂解决方案的情况下解决这个问题?
这发生在Oracle 11中。
这是模型:
答案 0 :(得分:1)
JHipster仅支持Oracle 12。
您可以使用JHipster for Oracle支持选择的唯一配置是Oracle 12c
,这意味着它无法在Oracle 11中正常运行。
请注意,开源项目很难支持专有的付费数据库,因此我们不会使用旧版本的Oracle。