Предположим, у меня есть таблица первичных пользователей, которая называется UserProfile
, и на ней есть отображаемое имя.Есть ли способ использовать SecondaryTable для перехода нескольких таблиц?
У меня есть различные модули, с которыми вы можете быть участником, с UserProfile
и ModuleId
на нем, чтобы обозначить ваш ModuleMembership
. Затем у вас может быть профиль для каждого другого модуля для хранения данных, относящихся к этому модулю, например, если вы зарегистрированы для PokerModule
, вы получите PokerProfile
.
Я хочу разместить отображаемое имя от UserProfile
по адресу PokerProfile
, но я хотел бы сделать это нормализованным образом. Я мог бы сделать это через Hibernate или через SQL, в любом случае работает. Точное соотношение было бы PokerProfile.membership.userProfile.displayName
- как я могу получить это в @Column
на классе PokerProfile
?
Должно быть, мне что-то не хватает, потому что мне кажется, что вы можете просто скопировать displayName из UserProfile в ModuleMembership и слить обновление. –
Как насчет @ManyToOne? Это может быть ассоциация сущностей. – crybird
Возможно, было бы полезно, если бы вы могли поделиться кодом своих сущностей. Хотя из того, что вы описали, я не знаю, почему вы не можете просто добавить метод '@ Transient' в класс' PokerProfile' (например, 'getUserName()'), который делает что-то вроде 'return this.getMembership() . .getUserProfile() GetDisplayName(); '. Предполагая, что вы правильно определили все свои отношения. Нет причин использовать SQL или HQL для чего-то подобного, если только SQL, создаваемый слоем ORM, просто слишком медленный по вашему вкусу. – aroth