1. 일대일 단방향(주 테이블에 외래키)

 2. 일대일 양방향(주 테이블에 외래키)

@Entity
public class MemberMapping {
    @Id
    @GeneratedValue
    @Column(name = "MEMBER_ID")
    private Long id;
    @Column(name = "USERNAME")
    private String username;
    @ManyToOne(fetch = FetchType.LAZY) //쿼리 분리
    @JoinColumn(name = "TEAM_ID")
    private TeamMapping team;
    @OneToOne
    @JoinColumn(name = "LOCKER_ID")
    private Locker locker;
    
    //...getter,setter
    }
@Entity
public class Locker {
    @Id @GeneratedValue
    private Long id;
    private String name;
    @OneToOne(mappedBy = "locker")
    private MemberMapping member;
    
    //...getter,setter
}
3. 일대일 단방향(대상 테이블에 외래키)

4. 일대일 양방향(대상 테이블에 외래키)

일대일 관계 정리
1) 주 테이블에 외래키가 있는 경우(권장)
- 객체지향 개발자 선호, JPA 맵핑이 편리
 - 장점) 주 테이블만 조회해도 대상 테이블에의 데이터 유무 확인 가능
 - 단점) 값이 없을 경우 외래키에 null 허용
 
2) 대상 테이블에 외래키가 있는 경우- 전통적인 개발자 선호
 - 장점) 주 테이블 / 대상 테이블을 일대일에서 일대다로 관계를 변경해도 테이블 구조 유지 가능
 - 단점) 프록시 기능 한계로 지연로딩으로 설정해도 항상 즉시 로딩됨