2014-11-23 2 views
0

Я следующее отображение:спящий режим. OneToOne отображение в базе данных

@Entity 
@Table(name="terminal_user") 
public class TerminalUser { 

    @OneToMany(mappedBy="user",fetch = FetchType.LAZY) 
    private Set<UserContent> userContentSet; 
    .... 
} 

@Entity 
@Table(name="user_content") 
public class UserContent { 

    @ManyToOne 
    @JoinColumn(name = "user_id") 
    TerminalUser user; 

    @OneToOne(mappedBy = "userContent") 
    Content content; 
    ... 
} 

@Entity 
@Table(name = "content") 
public class Content { 
@OneToOne 
    @JoinColumn(name = "user_content_id") 
    UserContent userContent; 
    .... 
} 

hibernate.hbm2ddl.auto После установки для создания

Я вижу следующую схему базы данных:

enter image description here

Для меня отношение таблиц user_content и content не является одним к одному.

Он выглядит так же, как отношение terminal_user и user_content и это один ко многим

Что делать я неправильно?

+0

Я знаю, что это не отвечает на вопрос, но почему бы вам не просто использовать обратные инженерные инструменты? Это делает жизнь намного проще! Подготовьте свою базу данных «волшебный»! –

+0

Например, симулятор сибасы? – gstackoverflow

+0

просто спящий режим, чтобы перейти из вашей базы данных в код. И вы можете использовать MySQL workbench или любой другой инструмент, который хотите использовать, чтобы перейти от диаграммы к базе данных. Так я всегда это делаю. Я никогда не пишу свое собственное картографирование. Я просто добавляю, какой спящий режим не генерируется автоматически. –

ответ

0

Уникальное ограничение будет иметь значение:

@Entity 
@Table(name = "content") 
public class Content { 
@OneToOne 
    @JoinColumn(name = "user_content_id", unique=true) 
    UserContent userContent; 
    .... 
} 
Смежные вопросы