나는 훈련 과제로 친구를 돕고 있었다. 방법은 다음과 같습니다.
일대일 관계에 연결된 사용자 및 자동차의 두 항목이 있습니다.
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
//
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "id")
private Car car;
자동차 등급 :
@Entity
@Table(name = "cars")
public class Car {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
@OneToOne(mappedBy = "car")
private User user;
@Override
public User getUserByAutoName(String name) {
User user = sessionFactory.getCurrentSession()
.createQuery("SELECT u from User u JOIN Car c on u.id = c.id where c.name = :n", User.class)
.setParameter("n", name)
.getSingleResult();
return user;
아시다시피 연관 부분을 명시 적으로 나타낼 필요는 없습니다.
on u.id = c.id
Hibernate는 우리를 위해 내부적으로이를 수행합니다. 하지만이 예에서는 내가하지 않으면 망가집니다.이 순간을 정리하는 데 도움을 줄 수 있습니까? :)