码迷,mamicode.com
首页 > 系统相关 > 详细

Hibernate注解方式实现1-1双向关联

时间:2014-09-10 11:01:00      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   os   io   使用   java   ar   2014   

以微博或博客为例,我们希望用户-用户信息设计为如下关系,即用户表用户口令登录等操作、用户信息表用户记录信息:

bubuko.com,布布扣

用户User代码清单:

import ***;

/**
 * @author Barudisshu
 */
@Entity
@Table(name = "t_user", schema = "", catalog = "db_blog")
public class User implements Serializable {

    private int id;                 //用户自动Id
    private String username;        //用户名
    private String password;        //密码

    private Info info;              //用户信息

    @Id
    @Column(name = "id", nullable = false, insertable = true, updatable = true)
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Basic
    @Column(name = "username", nullable = true, insertable = true, updatable = true, length = 255)
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Basic
    @Column(name = "password", nullable = true, insertable = true, updatable = true, length = 255)
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @OneToOne(cascade = CascadeType.ALL, targetEntity = Info.class,mappedBy = "user")
    public Info getInfo() {
        return info;
    }

    public void setInfo(Info info) {
        this.info = info;
    }
    //Override Object method
}

使用@OnetoOne标明1-1关联关系,并指定映射实体字段为user。

用户信息Info代码清单:

import ***;

/**
 * @author Barudisshu
 */
@Entity
@Table(name = "t_info", schema = "", catalog = "db_planetarian")
public class Info implements Serializable {

    private int id;             //用户信息自动Id
    private String mood;        //发布心情
    private Integer qq;         //QQ号码
    private String email;       //电子邮箱
    private String phone;       //电话号码
    private String avatar;      //头像地址
    private String qqBlog;      //腾讯博客
    private String sinaBlog;    //新浪博客
    private String leave;       //博主留言

    private User user;          //用户信息

    @Id
    @Column(name = "id", nullable = false, insertable = true, updatable = true)
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Basic
    @Column(name = "mood", nullable = true, insertable = true, updatable = true, length = 255)
    public String getMood() {
        return mood;
    }

    public void setMood(String mood) {
        this.mood = mood;
    }

    @Basic
    @Column(name = "QQ", nullable = true, insertable = true, updatable = true)
    public Integer getQq() {
        return qq;
    }

    public void setQq(Integer qq) {
        this.qq = qq;
    }

    @Basic
    @Column(name = "email", nullable = true, insertable = true, updatable = true, length = 400)
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Basic
    @Column(name = "phone", nullable = true, insertable = true, updatable = true, length = 120)
    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Basic
    @Column(name = "avatar", nullable = true, insertable = true, updatable = true, length = 4000)
    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    @Basic
    @Column(name = "QQBlog", nullable = true, insertable = true, updatable = true, length = 4000)
    public String getQqBlog() {
        return qqBlog;
    }

    public void setQqBlog(String qqBlog) {
        this.qqBlog = qqBlog;
    }

    @Basic
    @Column(name = "SinaBlog", nullable = true, insertable = true, updatable = true, length = 4000)
    public String getSinaBlog() {
        return sinaBlog;
    }

    public void setSinaBlog(String sinaBlog) {
        this.sinaBlog = sinaBlog;
    }

    @Basic
    @Column(name = "contact", nullable = true, insertable = true, updatable = true, length = 800)
    public String getLeave() {
        return leave;
    }

    public void setLeave(String leave) {
        this.leave = leave;
    }

    @OneToOne(optional = false)
    @PrimaryKeyJoinColumn
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
    //Override Object method
}

用户信息表Info使用@PrimaryKeyJoinColumn注解字段user为主键字段。

Hibernate注解方式实现1-1双向关联

标签:style   blog   http   os   io   使用   java   ar   2014   

原文地址:http://my.oschina.net/Barudisshu/blog/311893

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!