Почему Hibernate не создает мои таблицы, когда @GenerateValue добавляется в сущности? - PullRequest
0 голосов
/ 27 марта 2012

У меня есть приложение с 4 объектами, поддерживаемыми postgresql.Когда я запускаю приложение без аннотации @GenerateValue в моих полях id, все таблицы создаются нормально, однако, если я добавляю его и запускаю, я получаю массивную трассировку стека, которая в основном говорит мне, что мои отношения не существуют.

И я все как: "Ну, да! Ты должен был заставить их существовать"

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

Вот несколько измененных кодов некоторых из моих сущностей:

@Entity
@Table(name = "MyClass",uniqueConstraints=@UniqueConstraint(columnNames={"name","parent"}))
public class MyClass implements Serializable {


@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String mapName = "";

@ManyToOne
@JoinColumn(name = "parent_id")
private MyParentClass parent;

И его родитель:

@Entity
@Table(name = "PARENT",uniqueConstraints=@UniqueConstraint(columnNames={"name"}))
public class MyParentClass implements Serializable {
static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

String name = "";

@OneToMany(mappedBy = "parent")
@Cascade({ org.hibernate.annotations.CascadeType.ALL })
@LazyCollection(LazyCollectionOption.FALSE)
private Set<MyClass> children = new HashSet<MyClass>();

Являюсь ли ячто-то не так, или это проблема с Hibernate?

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Без трассировки стека трудно сказать, это единственная проблема, но

uniqueConstraints=@UniqueConstraint(columnNames={"name","parent"})

, похоже, не так. Нет столбцов name и parent , вместо этого у вас есть столбцы с именами mapName и parent_id.

0 голосов
/ 28 марта 2012

Проблема была в том, что у меня был неправильный спящий диалект в моей конфигурации. Был задан MYSQL, который беспокоил, работал для многих вещей, которые я делал, и я не видел предупреждений для этого. Стоит сохранить это на тот случай, если это подойдет кому-то еще.

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