[Querydsl] 멀티 DB (Multi DB) 연결, 설정하기

1. application.yml에 데이터소스 추가하기 Spring Boot 프로젝트에서 두 개의 데이터베이스를 사용하기 위해 application.yml 파일에 각각의 데이터소스를 정의해줍니다. spring: datasource: driverClassName: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3306/{DB명} username: {DB user} password: {DB password} second-datasource: driverClassName: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3306/{DB명} username: {DB user} password: {DB password} 2. 데이터소스 설정 1) 첫 번째 데이터베이스 설정 기본 데이터베이스 설정을 위해 @Primary 어노테이션을 사용해야 하며, 관련된 설정을 아래와 같이 구성합니다. @Configuration @EnableTransactionManagement @EnableJpaRepositories( basePackages = ["패키지1", "패기지2"], entityManagerFactoryRef = "entityManagerFactory", transactionManagerRef = "transactionManager" ) class DatasourceConfig { @Bean @Primary @ConfigurationProperties("spring.datasource") fun datasourceProperties(): DataSourceProperties { return DataSourceProperties() ...

JPA를 사용하여 최신 업데이트된 테이블의 ID 가져오기

JPA로 최신 업데이트된 테이블의 ID 가져오기

JPA (Java Persistence API)를 사용하여 가장 최신에 업데이트한 테이블의 ID를 얻으려면 몇 가지 단계를 거쳐야 합니다.

1. 엔터티 클래스 정의

업데이트된 테이블에 대한 엔터티 클래스를 정의합니다. 이 엔터티 클래스는 JPA의 @Entity 어노테이션을 사용하여 데이터베이스 테이블과 매핑되어야 합니다.

@Entity
@Table(name = "your_table_name")
public class YourEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    // 다른 필드와 메서드들
}

2. JPA 리포지토리 생성

JPA 리포지토리를 사용하여 데이터를 가져옵니다. 엔터티 클래스에 대한 리포지토리를 생성하고, 해당 리포지토리를 사용하여 데이터를 조회합니다.

@Repository
public interface YourEntityRepository extends JpaRepository {
    
    // 여기에 필요한 쿼리 메서드 정의
}

3. 최신 업데이트 레코드 조회 메서드 작성

업데이트된 테이블의 데이터를 가져오는 메서드를 작성합니다. 가장 최신에 업데이트된 데이터를 가져오려면 적절한 쿼리를 작성해야 합니다. 가장 간단한 방법은 업데이트 시간을 기준으로 정렬하여 가장 최신 데이터를 가져오는 것입니다.

@Service
public class YourEntityService {
    
    @Autowired
    private YourEntityRepository repository;
    
    public YourEntity getLatestUpdatedRecord() {
        List records = repository.findAll(Sort.by(Sort.Order.desc("updateTime")));
        if (!records.isEmpty()) {
            return records.get(0);
        }
        return null; // 데이터가 없을 경우 처리
    }
}

4. 엔터티 객체로부터 ID 추출

getLatestUpdatedRecord 메서드를 호출하여 가장 최신에 업데이트된 테이블의 엔터티 객체를 얻을 수 있습니다. 이 엔터티 객체에서 ID를 가져올 수 있습니다.

참고로, 업데이트 시간을 저장하는 필드(updateTime)를 엔터티 클래스에 추가해야 합니다. 이 필드는 업데이트 시간을 추적하기 위해 사용되며, 업데이트 시 자동으로 갱신되도록 설정할 수 있습니다. 이를 위해 JPA의 @PreUpdate 어노테이션을 사용할 수 있습니다.

이렇게 하면 JPA를 사용하여 가장 최신에 업데이트한 테이블의 ID를 가져올 수 있습니다.

댓글

이 블로그의 인기 게시물

[Python] 리스트에서 특정 값 , 원소 위치, 원소 개수 찾기

jar 파일 빌드 시 테스트 파일 제외

[PHP] AWS S3 sdk 파일 업로드 하기