首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

关于JPA OneToOne 映射()

2012-01-31 
关于JPAOneToOne映射(请教各位)映射关联的 那一端Java code@Entity@Table(namet3_group)public class G

关于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

热点排行