Как применить условие Where к вторичной таблице - PullRequest
4 голосов
/ 18 мая 2011

У меня есть сущность, созданная с основной таблицей и двумя связанными таблицами.Я присоединился к первичным-вторичным таблицам, используя аннотации гибернации.Вот код.

@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.По умолчанию спящая аннотация «@Where» применяется только к целевой таблице, которая здесь называется «Table1».В результате я получаю ошибку SQL, что столбец, включенный в предложение where, не найден в Table1.

Есть ли какая-то специальная директива, которую мне нужно добавить в @Where, чтобы hibernate добавил предложение SQL where во вторичную таблицу Table2?

1 Ответ

0 голосов
/ 04 февраля 2014

Я думаю, @Where и @WhereJoinTable - это то, что вы хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...