분류 전체보기(26)
-
The Network Adapter could not establish the connection 에러
java.sql.SQLException: IO 예외 상황: The Network Adapter could not establish the connection at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269) at oracle.jdbc.driver.OracleConnection.(OracleConnection.java:210) at oracle.jdbc.driver.OracleDriver.getC..
2019.10.24 -
[Linux] cron 에러: FAILED to authorize user with PAM
cron이 정상적으로 동작하지 않을 때 cron 로그를 확인해 볼 수 있다. * cron 로그 위치 CentOS : /var/log/cron Ubuntu : /var/log/syslog 위 로그를 확인해 보았을 때 아래와 같은 로그가 확인되면 크론을 실행하는 계정의 인증 만료를 의미한다. crond[1234]: (root) FAILED to authorize user with PAM (Authentication token is no longer valid; new one required) 이 때 크론 실행 계정(여기서는 root)의 패스워드 만료 여부를 확인해보았을 때 만료상태이면 패스워드를 변경해주면 된다. * 패스워드 만료여부 확인 # chage -l root
2019.10.13 -
[Spring Data JPA] Repository 생성
1. JPA Repository 생성 JPA를 사용하여 Repository를 만들 때는 JpaRepository 를 상속받는 Interface를 만들어 주기만 하면 된다. import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; public interface SchoolRepository extends JpaRepository { } 이렇게 인터페이스를 만들어주고, 주입만 해주면 기본적인 crud 기능을 모두 사용할 수있다. @Autowired SchoolRepository school..
2019.10.08 -
[Spring] @Transactional 이란?
트랜잭션이란 ? DB에서 상태변화의 한 주기를 의미한다. 쉽게 말해서 바로 이전 커밋 이후의 작업부터, 이런저런 작업 후 최종적으로 커밋을 날리기까지의 주기이다. @Transactional 어노테이션은, 해당 어노테이션이 적용되는 메소드를 하나의 트랜잭션으로 묶어주는 역할을 한다. 예시로, "구매자가 판매자에게 금액송금" 을 대략적인 코드로 구현해 보았다. 1) 트랜잭션 자체를 적용하지 않은 경우 2) @Transactional 대신 try-catch로 구현한 경우 3) @Transactional을 사용한 경우 아래 세가지 경우의 코드와 문제점이 각각 무엇인지 정리해 보았다. 1) 트랜잭션 자체를 적용하지 않은 경우 @Autowired private Buyer buyer @Autowired private..
2019.10.06 -
[Spring Data JPA] Cascade
ManyToOne 또는 OneToMany에 옵션으로 설정 가능. 상태변화를 전파하는 옵션이다. 1. 생성 1) cascade 옵션 설정 @Entity public class School { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "school", cascade = CascadeType.ALL) private Set students = new HashSet(); } 2) 실행 테스트 @Component @Transactional public class JpaRunner implements ApplicationRunner { @PersistenceContext EntityManager entityManag..
2019.10.05