JPA (Java Persistence API)

@Table, @UniqueConstraint

have a good time 2021. 11. 15. 21:26

jpa 에서 두 개 이상의 칼럼을 unique 걸 때 사용

 

<Likes.java>파일

 

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@Entity
@Table(
		uniqueConstraints = {
				@UniqueConstraint(
						name="likes_uk",
						columnNames = {"imageId", "userId"}
				)
		}
)
public class Likes {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int id;
	
	@JoinColumn(name = "imageId")
	@ManyToOne
	private Image image; 
	
	@JoinColumn(name = "userId")
	@ManyToOne
	private User user; 
	
	private LocalDateTime createDate;
	
	@PrePersist
	public void createDate() {
		this.createDate = LocalDateTime.now();
	}


}

db 결과 : imageId, userId 칼럼이 unique 설정됨

 

 

참고 자료 : https://gs.saro.me/dev?page=4&tn=499 

 

JPA 컬럼 두개이상 UNIQUE 설정하기 - 가리사니

JPA에서 Entity 클래스에서 Unique 설정하려면 ``` java @Column(name="column" , unique=true) int column; ``` 하면 해결이 되지만 이 방법으로는 두개 이상의 컬럼을 unique 걸 수가 없다. 따라서 @Table에 uniqueConstraints

gs.saro.me

 

이지업 강의 사이트 "스프링부트 SNS 프로젝트 - 포토그램 만들기"