我简化了我的模型,但我的模型如下:
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;
}
但我想要一个像:
这样的sqltable Process {idProcess}
table Options {idOption, idObject, type}
=>我不希望列“idOption”进入Process表,我不希望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";
我该怎么做?
备注: