如何将Where子句应用于辅助表

时间:2011-05-17 23:05:14

标签: hibernate annotations

我有一个使用主表和2个关联表创建的实体。我使用hibernate注释加入了主要辅助表。 这是代码。

@Entity
@Table(name = "Table1")
@org.hibernate.annotations.Entity(dynamicUpdate=true)
@org.hibernate.annotations.Tables ( {
    @org.hibernate.annotations.Table(appliesTo = "Table2", optional = false ),
    @org.hibernate.annotations.Table(appliesTo = "Table3", optional = false )
})
//@org.hibernate.annotations.Table(appliesTo = "Table2", optional = false )
@PrimaryKeyJoinColumn(name="t1_column1")
@SecondaryTables({
    @SecondaryTable(name = "Table2", pkJoinColumns = {@PrimaryKeyJoinColumn(name = "t2_col1", referencedColumnName = "t1_col1")}  ),
    @SecondaryTable(name = "Table3", pkJoinColumns = {@PrimaryKeyJoinColumn(name = "t3_col1", referencedColumnName = "t1_col1")})
})

这很好用。我想指定一个Where注释,它将应用于辅助表'Table2'。默认情况下,hibernate注释“@Where”仅应用于目标表,此表为“Table1”。结果,我得到一个SQL错误,即在'Table1'中找不到where子句中包含的列。

是否有任何需要添加到@Where的特殊指令才能使hibernate在辅助表Table2上添加SQL where子句?

1 个答案:

答案 0 :(得分:0)

我猜@Where和@WhereJoinTable是你想要的