[프로젝트] 웹 TripRecorder - day02

_bean_·2023년 5월 31일
0
post-thumbnail

오류 및 문제점

1. SQL Error: 1451, SQLState: 23000

  • 문제점: ManyToOne인 상황에서 One의 값이 지워질 때 외래키 제한으로 삭제되지 않는다.
  • 해결 방안: ManyToOne만 존재할 경우 Many를 통해 One을 삭제할 수 없다. 따라서 양방향으로 연관관계를 설정해 Cascade를 설정한다.
// UserVO.java
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<TripVO> trip;

// TripVO.java
@ManyToOne
@JoinColumn(name = "user_no")
private UserVO user;

2. Property of @IdClass not found in entity

  • 문제점: 두 값이 모두 외래키인 복합키를 사용해야 하는데 entity에서 @IdClass를 찾을 수 없다.
  • 해결 방안: 복합키 클래스의 속성과 entity 클래스의 속성 이름을 같게 설정한다.
// MultiKey.java
public class MultiKey implements Serializable{
	private Long user; // 이름 동일 1
	private Long sns; // 이름 동일 2
}

// HeartVO.java
public class HeartVO {
	@Id
	@ManyToOne
	@JoinColumn(name="user_no")
	private UserVO user; // 이름 동일 1
	@Id
	@ManyToOne
	@JoinColumn(name="sns_no")
	private SnsVO sns; // 이름 동일 2
}

3. SNS 게시글과 경비 각각 등록

  • 문제점: sns 게시글과 경비를 각각 등록할 때 저장되지 않기 위해 입력 값을 모두 지워야 한다. 또한 다 지워야 하는지, 모두 채워야 하는지 각각의 경우에 따라 알림을 따로 줘야 하고 조건을 확인하기도 복잡하다.
  • 해결 방안: 게시글, 경비 등록 form을 따로 만든다.

진행 상황

1. JPA 완성


참고 자료

profile
어쩌다 풀스택 :3

0개의 댓글