Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- NamedEntityGraph
- mysql equal null
- jdbc characterencoding utf8mb4
- sendFractionalSeconds
- MYSQL
- 버전 문자열 비교
- load order
- yml
- +9:00
- RootGraph
- MSSQL
- getDateCellValue
- java jdbc utf8mb4 연결 오류
- mysql not equal null
- 운영체제별 차이
- getEntityGraph
- 티스토리챌린지
- mysql8업그레이드
- 1*1000
- AuditingEntityListener
- mysql =
- 오블완
- createEntityGraph
- apatch poi
- fractional seconds
- jdbc utf8mb4
- https
- spring boot
- 운동해서 광명찾자
- Protecle
Archives
- Today
- Total
Hello
[JPA] PK가 아닌 컬럼을 사용하여 연관관계 설정 본문
728x90
@ManyToOne 관계 매핑 시 연관 테이블의 PK가 아닌 컬럼으로 관계 매핑 설정 시 ClassCastException이 발생하게 됩니다. 에러 내용을 보면 해결 방법이 나와 있어 문제 해결 하는 방법은 간단 합니다. 연관된 엔티티 객체가 Serializable를 구현하는 것 입니다.
java.lang.ClassCastException: com.example.demo.ServerInfoEntity cannot be cast to java.io.Serializable
예시 테이블을 사용해 방법과 이유에 대해 간략히 설명합니다.
FK 컬럼 조인 방법
- @JoinColumn 조인할 컬럼명 referencedColumnName 명시
- 연관 엔티티 객체가 Serializable 구현
@Entity
@Table(name = "tb_config")
public class ConfigEntity {
@Id
private Integer id;
@ManyToOne
@JoinColumn(name = "server_info_key", referencedColumnName = "server_key")
private ServerInfoEntity serverInfo;
private String value;
private String desc;
}
@Entity
@Table(name = "tb_server_info")
public class ServerInfoEntity implements Serializable {
@Id
private Integer id;
private String serverName;
private String serverKey;
private String address;
private String desc;
}
Hibernate가 제공하는 BasicType - Serializable
표시될 수 있는 Java 유형
POJO 엔터티 클래스에 대한 요구 사항
엔터티 클래스 요구 사항 (JAVA DOCS)
참고 :
https://docs.oracle.com/javaee/7/tutorial/persistence-intro001.htm#BNBQA
https://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html
https://www.baeldung.com/jpa-entities-serializable#2-hibernate-joincolumn-annotation
https://vladmihalcea.com/how-to-map-a-manytoone-association-using-a-non-primary-key-column/
728x90
'java' 카테고리의 다른 글
[JPA] 하위 그래프가 하위 그래프를 사용하는 방법 (0) | 2024.01.11 |
---|---|
[JPA] Service Layer 에서 DataIntegrityViolationException 처리 (0) | 2024.01.10 |
점으로 구분된 버전 문자열 비교 (0) | 2023.12.06 |
[JPA] JPA Auditing이란 (+Spring Data JPA Auditing) (0) | 2023.11.17 |
[Jackson] JsonSerializer, JsonDeserializer 커스텀하게 사용하는 방법 (0) | 2023.11.08 |