Java 冬眠数据库中的OneToOne映射
我有以下映射:Java 冬眠数据库中的OneToOne映射,java,hibernate,jpa,mapping,one-to-one,Java,Hibernate,Jpa,Mapping,One To One,我有以下映射: @Entity @Table(name="terminal_user") public class TerminalUser { @OneToMany(mappedBy="user",fetch = FetchType.LAZY) private Set<UserContent> userContentSet; .... } 设置hibernate.hbm2ddl.auto以创建 我看到以下数据库图: 对于我来说,表用户内容和内容之间的
@Entity
@Table(name="terminal_user")
public class TerminalUser {
@OneToMany(mappedBy="user",fetch = FetchType.LAZY)
private Set<UserContent> userContentSet;
....
}
设置
hibernate.hbm2ddl.auto
以创建
我看到以下数据库图:
对于我来说,表用户内容
和内容
之间的关系不是一对一的关系
它看起来与终端用户
和用户内容
的关系相同,是一对多的关系
我错了什么?唯一的约束将产生不同:
@Entity
@Table(name = "content")
public class Content {
@OneToOne
@JoinColumn(name = "user_content_id", unique=true)
UserContent userContent;
....
}
我知道这并不能回答你的问题,但是你为什么不使用逆向工程工具呢?它让生活变得容易多了!准备好你的数据库,然后“魔术”!例如,sybase power designer?只需休眠工具即可从数据库转换为代码。您可以使用MySQL workbench或任何您想要使用的工具,从图表到数据库。我总是这样。我从不写自己的映射。我只是简单地添加了hibernate不会自动生成的内容。
@Entity
@Table(name = "content")
public class Content {
@OneToOne
@JoinColumn(name = "user_content_id")
UserContent userContent;
....
}
@Entity
@Table(name = "content")
public class Content {
@OneToOne
@JoinColumn(name = "user_content_id", unique=true)
UserContent userContent;
....
}