-
Spring - JPA Entity에서 @Column 필드 리스트로 만들기Spring 2024. 2. 13. 20:23반응형
JPA Entity에서 @Column 어노테이션은 객체 필드와 DB 테이블 컬럼을 맵핑합니다.
@Table(name = "entity") public class Entity { @Column(name = "id") private Long id; @Column(name = "name") private String name; @Column(name = "age") private Long age; }
Entity 클래스에 매핑된 모든 컬럼명을 나열하려면 Java Reflection을 사용하여 클래스 필드에 액세스한 다음 @Column 주석이 있는지 확인할 수 있습니다.
방법은 다음과 같습니다.
1. 클래스의 모든 필드를 가져옵니다.
2. 각 필드에 @Column annotation이 있는지 확인하세요.
3. annotation이 있는 경우 annotation에서 열 이름을 추출합니다.import javax.persistence.Column; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; public class ColumnEnumerator { public static void main(String[] args) { List<String> columnNames = getColumnNames(Entity.class); columnNames.forEach(System.out::println); } public static List<String> getColumnNames(Class<?> clazz) { List<String> columnNames = new ArrayList<>(); Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { Column column = field.getAnnotation(Column.class); if (column != null) { // If name is not specified in the annotation, use the field name String columnName = column.name().isEmpty() ? field.getName() : column.name(); columnNames.add(columnName); } } return columnNames; } }
반응형'Spring' 카테고리의 다른 글
Spring - JPA distinct 여러 컬럼 사용하기 (0) 2024.03.12 Spring - JPA on duplicate key update (MySQL) (0) 2024.02.13 Spring - Resilience4j circuit breaker example (0) 2024.01.09 Spring - JPA Executing an update/delete query 에러 (0) 2023.10.17 Spring - JPA @OneToMany java.lang.StackOverflowError: null (0) 2022.11.04