简体   繁体   English

休眠中同一表的不同表示

[英]Different representation of same table in hibernate

I have question about hibernate. 我有关于休眠的问题。 I have class User which contain base information about user. 我有User类,其中包含有关用户的基本信息。

public class User {

@Id
@GeneratedValue
@Column(name = "id")
private int id;

@Column(name = "name")
private String name;

@Column(name = "surname")
private String surname;

@Column(name = "photo_url")
private String photoURL;

Now i need to create class UserFull with extended information about user 现在,我需要使用有关用户的扩展信息创建UserFull类

public class UserFull extends User {

@Column(name = "email")
private String email;

@Column(name = "date_birthday")
private Date dateBirthday;

@Column(name = "date_registration")
private Date dateRegistration;

How can i implement such extending with hibernate? 我该如何使用休眠实现这种扩展? Both classes reference on same table "user". 这两个类在同一表“用户”上引用。

This code will do what you want to achieve 该代码将完成您想要实现的目标

 @Entity  
    @Table(name="User")  
    @Inheritance(strategy=InheritanceType.SINGLE_TABLE) //Least normalisation strategy  
    public class User
    { 
        @Id
        @GeneratedValue
        @Column(name = "id")
        private int id;

        @Column(name = "name")
        private String name;

        @Column(name = "surname")
        private String surname;

        @Column(name = "photo_url")
        private String photoURL;
    }

    @Entity  
    @Table(name="UserFull")  
    public class UserFull extends User {

        @Column(name = "email")
        private String email;

        @Column(name = "date_birthday")
        private Date dateBirthday;

        @Column(name = "date_registration")
        private Date dateRegistration;
   }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM