我有一个使用主表和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子句?
答案 0 :(得分:0)
我猜@Where和@WhereJoinTable是你想要的