Java Hibernate映射OneToOne(不带列且在非主键上)

Java Hibernate映射OneToOne(不带列且在非主键上),java,oracle,hibernate,h2,Java,Oracle,Hibernate,H2,我简化了我的模型,但我的模型如下: class Process { private int idProcess; } class Step { private int idStep; } class Action { private int idAction; } class Option { private int idOption; private int idObject; private TypeOption type; } enu

我简化了我的模型,但我的模型如下:

class Process {
    private int idProcess;
}

class Step {
    private int idStep;
}

class Action {
    private int idAction;
}

class Option {
    private int idOption;
    private int idObject;
    private TypeOption type;
}

enum typeOption {
    PROCESS, STEP, ACTION
}
之所以选择此模型,是因为我们可以选择多种类型,而此字段仅用于添加我们在上一版本软件中忘记的内容。所以你可以选择任何事情

我想在源对象和选项之间添加映射,如:

class Process {
    private int idProcess;

    @OneToOne
    @JoinColumn(?)
    private Option option;
}
但是我想要一个sql,比如:

table Process {idProcess}
table Options {idOption, idObject, type}
=>我不希望在进程表中添加列idOption,也不希望Hibernate在idObject上添加外键,因为外键不是idObject而是{idObject,type}

所以我想让hibernate做:

SELECT p.idProcess, o.idOption FROM Process p, Option o WHERE o.idObject = Process.idProcess AND o.type = "PROCESS";
我怎么做

备注:

我在生产中使用Oracle DB,但在测试中使用H2 H2模式是由hibernate为测试自动生成的,但Oracle模式是由外部软件生成的