package com.ankurm.hibernatedemo.association; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; /** * The @MapsId fix: this entity carries NO inverse {@code @OneToOne} field at all. A profile is * looked up on demand with {@code session.find(MiProfile.class, userId)} because it shares the * same primary key value as the user (see {@link MiProfile}), so there is nothing to proxy and * nothing forces an eager join when loading a user. */ @Entity @Table(name = "mi_user") public class MiUser { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; protected MiUser() { } public MiUser(String username) { this.username = username; } public Long getId() { return id; } }