关于JPA OneToOne 映射(请教各位)
映射关联的 那一端
Java code
@Entity
@Table(name="t3_group")
public class Group {
@Id
@GeneratedValue
private int id;
@OneToOne
private User user;
数据库 就会 多了一个 user_id 而 在XML 配置中的 映射关系 是不会多出一个字段的。 如果多出一个字段的话 也可以维护成一对一的 关系 但是那个字段 必须为 唯一性 , 但是 如果 双向 关联的 话 那个 user中 的表也会多出一个字段。
后来我 在 group类里 的 user 映射 做了一些更改
Java code
@Entity
@Table(name="t3_group")
public class Group {
@Id
@GeneratedValue
private int id;
@OneToOne
@JoinColumn(name="id",unique=true)
private User user;
@JoinColumn(name="id",unique=true)
加了这一行 这样就不会多出 字段了 和 XML的映射一样了,
我也做了相关的测试了 首先把User 保存下 ,然后 在数据库里 手动的保存GROUP ID 保持相同,
Java code
User user = em.getReference(User.class,2);
System.out.println(user.getName());
System.out.println(user.getGroup().getIdNumber());
使用查询后 能够将2个相同ID的值 查询出来。。说明关系关联上了。
请问还有什么方法可以 让 jpa 的 一对一 映射 后 数据库表字段 和 XML一样的? 因为我觉得我这样弄又点不对。
因为 我看过数据库了,我那个映射的 id字段 没有 那个 可以选择关联其他主键的 按钮。
------解决方案--------------------
项目开发中表之间从未有物理主外关系,何况one to one