Я знаю, @SecondaryTable
вопросов были опубликованы много раз, поэтому, если есть один и тот же (я еще не нашел его), пожалуйста, дайте мне ссылку или совет.Hibernate: @SecondaryTable не работает
У меня есть две таблицы в моей базе данных (firstTable
и secondTable
), два POJO Hibernate классы (FirstTablePojo
и SecondTablePojo
).
+----------+ +-----------+
|firstTable| |secondTable|
|----------+ |-----------+
|featureId |------------>|featureId |(secondTable's primary key)
|foo | |featureName|
|bar | +-----------+
+----------+
Я хочу, чтобы показать поля из обеих этих таблиц в СПЯ от одного объекта списка, я решил использовать @SecondaryTable
. Эти две таблицы связаны полем featureId
(который является первичным ключом для secondTable
), я хочу, чтобы featureName
отображался вместе с полями firstTable
. FirstTablePojo
предшествует этой аннотации:
@SecondaryTable(name="secondTable",
[email protected](name="featureId",
referencedColumnName = "featureId"))
Я добавил эту недвижимость в FirstTablePojo
(с добытчиками и сеттеров):
@ManyToOne
@JoinColumn(name="featureId", table="secondTable")
String featureName;
Когда с помощью <c:forEach items="${features}" var="feature">
, я получаю каждый ${feature.foo}
(foo
является свойство, которое было в FirstTablePojo
, прежде чем я использовал @SecondaryTable
) и ${feature.featureName}
, я вижу каждый foo
, но ни один из featureNames
не отображается. Было бы здорово, если бы кто-нибудь мог сказать мне, что мне здесь не хватает, и почему имена функций из другой таблицы не отображаются в списке объектов FirstTablePojo
.
Как вы решили свою проблему? Я в той же ситуации ... – davioooh
'featureId' был основным ключом в вашей основной таблице? или внешний ключ для «secondTable»? – davioooh
@ davioooh О, в то же время я разместил этот вопрос http://stackoverflow.com/questions/9627102/selecting-from-two-tables-in-hibernate, чтобы они, вероятно, были в одних и тех же таблицах. –