Я спрашивал несколько раз на других сайтах (и здесь), но думаю, что попробую еще раз, потому что я действительно не нашел ответа.Я новичок в hibernate, и я боюсь публиковать сообщения на форумах hibernate.Я использую в основном аннотации JPA с Hibernate 3.6.
У меня есть следующая схема:
Так что в основном это устаревшая БД.Номинация - это центральная таблица, и у меня есть 4 конкретных типа номинаций:
- Coworker (который использует только столбцы таблицы NOMINATION в качестве атрибутов)
- Команда (таблицы NOMINATION + TEAM_NOM)
- Идея (таблицы NOMINATION + IDEA_NOM)
- Успех (таблицы NOMINATION + SUCCESS_NOM)
Итак, я использовал дискриминатор (и наследование), чтобы установить ихюридические лица.Например:
Вот номинация сущностей:
@Entity(name = "Nomination")
@Table(name = "NOMINATION")
@DiscriminatorColumn(name="CATEGORY_CODE", discriminatorType = DiscriminatorType.STRING, length = 1)
@Inheritance(strategy=InheritanceType.JOINED)
public abstract class Nomination extends AuditableEntity {
А вот как я кодирую сущности Team, Idea и Success:
@Entity(name = "TeamNom")
@Table(name = "TEAM_NOM")
@DiscriminatorValue("T")
@PrimaryKeyJoinColumn(name = "NOM_ID")
public class TeamNom extends Nomination {
Теперь для Coworker я сделалследующее:
@Entity(name = "CoworkerNom")
@DiscriminatorValue("C")
@PrimaryKeyJoinColumn(name = "NOM_ID")
public class CoworkerNom extends Nomination {
Как видите, у меня большая проблема.Hibernate ищет таблицу под названием «CoworkerNom», но у меня ее нет в нашей БД.Я попытался вставить «Номинацию» в качестве таблицы, потому что у меня не было идей, но логически это дает мне ошибку зависимости округлости.
Итак, как мне подойти к этой сущности, у которой нет таблицы и атрибутов? Очевидно, что другие сущности работают нормально.