Hibernate one-to-one mapping
        Posted  
        
            by 
                Andrey Yaskulsky
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Andrey Yaskulsky
        
        
        
        Published on 2012-12-08T16:49:54Z
        Indexed on 
            2012/12/08
            17:03 UTC
        
        
        Read the original article
        Hit count: 483
        
I have one-to-one hibernate mapping between class Student and class Points:
@Entity
@Table(name = "Users")
public class Student implements IUser {
    @Id
    @Column(name = "id")
    private int id;
    @Column(name = "name")
    private String name;
    @Column(name = "password")
    private String password;
    @OneToOne(fetch = FetchType.EAGER, mappedBy = "student")
    private Points points;
    @Column(name = "type")
    private int type = getType();
    //gets and sets...
@Entity
@Table(name = "Points")
public class Points {
    @GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "student"))
    @Id
    @GeneratedValue(generator = "generator")
    @Column(name = "id", unique = true, nullable = false)
    private int Id;
    @OneToOne
    @PrimaryKeyJoinColumn
    private Student student;
    //gets and sets
And then i do:
Student student = new Student();
        student.setId(1);
        student.setName("Andrew");
        student.setPassword("Password");
        Points points = new Points();
        points.setPoints(0.99);
        student.setPoints(points);
        points.setStudent(student);
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.save(student);
        session.getTransaction().commit();
And hibernate saves student in the table but not saves corresponding points. Is it OK? Should i save points separately?
© Stack Overflow or respective owner