[JPA] @OneToOne, 1:1 관계 매핑
Table 관계도
Entity
@Entity
public class Person {
@Id
@GeneratedValue
private int id;
private String name;
@OneToOne
@JoinColumn(name = "cellular_id")
private Cellular cellular;
public Person() {}
public Person(String name, Cellular cellular) {
this.name = name;
this.cellular = cellular;
}
// getter and setter
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", cellular=" + cellular +
'}';
}
}
@Entity
public class Cellular {
@Id
@GeneratedValue
private int id;
private int number;
public Cellular() {}
public Cellular(int number) {
this.number = number;
}
// getter and setter
@Override
public String toString() {
return "Cellular{" +
"id=" + id +
", number=" + number +
'}';
}
}
TEST
public class OneToOneTest {
@Autowired
private EntityManagerFactory entityManagerFactory;
private EntityManager entityManager;
@Test
public void oneToOneTest() {
Cellular cellular = new Cellular();
cellular.setNumber(521);
entityManager.persist(cellular);
Person person = new Person();
person.setName("woniper");
person.setCellular(cellular);
entityManager.persist(person);
Assert.assertEquals(person.getCellular().getId(), cellular.getId());
}
@Before
public void setUp() throws Exception {
entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
}
@After
public void after() {
entityManager.getTransaction().commit();
entityManager.close();
}
}
'Java 관련 > JPA' 카테고리의 다른 글
JPA에 기반한 비즈니스로직 중심의 S/W 개발 (0) | 2021.11.17 |
---|---|
JPA 요소 (0) | 2021.10.05 |
[JPA] Entity 객체 생명주기(Lifecycle)와 Persistence Context (0) | 2020.09.07 |
[JPA] @ManyToMany, N:M 관계 매핑 (0) | 2020.09.07 |
[JPA] @OneToMany / @ManyToOne, 1:N / N:1 관계 매핑 (0) | 2020.09.07 |
[JPA] JavaEE 환경(Spring)에서 JPA 설정 및 CRUD (0) | 2020.09.07 |
[JPA] JavaSE 환경에서 JPA 설정 및 CRUD (0) | 2020.09.07 |
[JPA] JPA란 무엇인가? (0) | 2020.09.07 |