#30 jpa basic: relation mapping - one to one
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
package com.hello.jpa.relationmapping.ex02;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.persistence.EntityTransaction;
|
||||
import javax.persistence.Persistence;
|
||||
|
||||
public class JpaMain {
|
||||
|
||||
public static void main(String[] args) {
|
||||
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
|
||||
|
||||
EntityManager em = emf.createEntityManager();
|
||||
|
||||
EntityTransaction tx = em.getTransaction();
|
||||
tx.begin();
|
||||
|
||||
try {
|
||||
tx.commit();
|
||||
} catch (Exception e) {
|
||||
tx.rollback();
|
||||
} finally {
|
||||
em.close();
|
||||
}
|
||||
|
||||
emf.close();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.hello.jpa.relationmapping.ex02.domain;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.OneToOne;
|
||||
|
||||
@Entity
|
||||
public class Locker {
|
||||
|
||||
@Id @GeneratedValue
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
@OneToOne(mappedBy = "locker")
|
||||
private Member member;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.hello.jpa.relationmapping.ex02.domain;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
public class Member {
|
||||
|
||||
@Id @GeneratedValue
|
||||
@Column(name = "MEMBER_ID")
|
||||
private Long id;
|
||||
|
||||
@Column(name = "USERNAME")
|
||||
private String name;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "TEAM_ID")
|
||||
private Team team;
|
||||
|
||||
@OneToOne
|
||||
@JoinColumn(name = "LOCKER_ID")
|
||||
private Locker locker;
|
||||
|
||||
public Locker getLocker() {
|
||||
return locker;
|
||||
}
|
||||
|
||||
public void setLocker(Locker locker) {
|
||||
this.locker = locker;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Team getTeam() {
|
||||
return team;
|
||||
}
|
||||
|
||||
public void setTeam(Team team) {
|
||||
this.team = team;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.hello.jpa.relationmapping.ex02.domain;
|
||||
|
||||
public enum RoleType {
|
||||
|
||||
USER, ADMIN
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.hello.jpa.relationmapping.ex02.domain;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
public class Team {
|
||||
|
||||
@Id @GeneratedValue
|
||||
@Column(name = "TEAM_ID")
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
@OneToMany(mappedBy = "team")
|
||||
private List<Member> members = new ArrayList<>();
|
||||
|
||||
public void addMember(Member member) {
|
||||
member.setTeam(this);
|
||||
members.add(member);
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public List<Member> getMembers() {
|
||||
return members;
|
||||
}
|
||||
|
||||
public void setMembers(List<Member> members) {
|
||||
this.members = members;
|
||||
}
|
||||
}
|
||||
@@ -11,10 +11,13 @@
|
||||
<!-- <class>com.hello.jpa.entitymapping.ex01.domain.OrderItem</class>-->
|
||||
<!-- <class>com.hello.jpa.relationmapping.ex00.Member</class>-->
|
||||
<!-- <class>com.hello.jpa.relationmapping.ex00.Team</class>-->
|
||||
<class>com.hello.jpa.relationmapping.ex01.domain.Item</class>
|
||||
<class>com.hello.jpa.relationmapping.ex01.domain.Member</class>
|
||||
<class>com.hello.jpa.relationmapping.ex01.domain.Order</class>
|
||||
<class>com.hello.jpa.relationmapping.ex01.domain.OrderItem</class>
|
||||
<!-- <class>com.hello.jpa.relationmapping.ex01.domain.Item</class>-->
|
||||
<!-- <class>com.hello.jpa.relationmapping.ex01.domain.Member</class>-->
|
||||
<!-- <class>com.hello.jpa.relationmapping.ex01.domain.Order</class>-->
|
||||
<!-- <class>com.hello.jpa.relationmapping.ex01.domain.OrderItem</class>-->
|
||||
<class>com.hello.jpa.relationmapping.ex02.domain.Member</class>
|
||||
<class>com.hello.jpa.relationmapping.ex02.domain.Team</class>
|
||||
<class>com.hello.jpa.relationmapping.ex02.domain.Locker</class>
|
||||
|
||||
<properties>
|
||||
<!-- 필수 속성 -->
|
||||
|
||||
Reference in New Issue
Block a user