Hibernate не создает таблицы сущностей при встраивании компонентов - PullRequest
0 голосов
/ 23 июня 2009

Я создал приложение с использованием Java / Hibernate / MySQL, но всякий раз, когда я пытаюсь его запустить, он жалуется, что таблица для одного из моих классов сущностей не была создана.

После некоторых проб и ошибок я пришел к выводу, что проблема заключается в том, как я сопоставляю встроенные компоненты, но я не знаю, как можно это исправить.

Вот соответствующие биты кода:

@Entity
public class Feed {
... //Definition of some properties
  @Embedded
  @AttributeOverrides( {
    @AttributeOverride(name = "type", column = @Column(name = "title-type")),
    @AttributeOverride(name = "mode", column = @Column(name = "title-mode")),
    @AttributeOverride(name = "value", column = @Column(name = "title-value")) })
  public Content getTitle() { ... }

  ...
}

@Embeddable
public class Content {
  ... // There are three properties with bean syntax
      // without any persistence annotation.
}

Кто-нибудь знает, почему Hibernate не может создать таблицу для класса Feed? И как я могу это исправить?

Заранее спасибо.

Редактировать: Наконец я понял; виноват тот факт, что я использовал символы "-" в своих столбцах. Я заменил их подчеркиванием, и все снова хорошо.

Большое спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 13 сентября 2009

Извините за отсутствие обновлений, но я наконец-то смог записать необходимую отладочную информацию.

Имена, которые я выбрал для своих столбцов, были ошибочными; Я бы предположил, что «-» зарезервирован для арифметических операций и что он не должен быть в имени столбца.

Я заменил их подчеркиванием, и эта проблема решена.

Большое спасибо за вашу помощь.

0 голосов
/ 28 июля 2009

вы уверены, что переопределяете все свои свойства класса Embeddable (хотя он должен работать, когда вы не переопределяете все) Когда я сравниваю ваш код с моим, я не вижу никакой разницы (я просто реализую Serializable для своего класса) Вы можете написать, какое исключение он выбрасывает?

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