OneToMany映射具有额外的固定位置

时间:2012-01-16 09:31:38

标签: hibernate jpa

假设我有下表:

PARAMETER
 - NAME         varchar2(10)
 - TABLE_NAME   varchar2(50)
 - REF_TABLE_ID number(10)
 - VALUE        varchar2(100)

此表包含其他表的参数值,例如,如果我有表 命名为EMPLOYEE,我想向ID为1的员工添加一个参数 PARAMETER表将有如下行:

insert into PARAMETER (NAME, TABLE_NAME, REF_TABLE_ID, VALUE) values ('PARAM1', 'EMPLOYEE', 1, 'Value of PARAM1');

当然这不会强制任何整数约束,但是这个PARAMETER表不能改变。

现在我想在我的实体EMPLOYEE中映射这个PARAMETER表,我需要的东西是要替换的东西(@SomeAnnotation)

public class Employee {

  @OneToMany
  @JoinColumn(name="REF_TABLE_ID")
  @SomeAnnotation("and table_name = 'EMPLOYEE'")
  private List<Parameter> parameters;

  ... etc

}

现在我使用@PostLoad注释来加载与此实体相关的所有PARAMETER,但我更愿意,如果我能 以某种方式映射PARAMETER表。

我的另一个想法是创建一个VIEW,我在其中过滤了TABLE_NAME ='EMPLOYEE'的PARAMETER表,但这意味着 我需要为数据库中的所有表创建一个视图,而且它们太多了。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找@Where注释。您不需要AFAIK条款中的and