반응형
Simple Spring @CreatedDate 주석이 작동하지 않습니다.
아래와 같이 간단한 예제를 실행하려고 하는데 오류가 발생합니다.
@CreatedDate를 사용하고 있습니다.그러나 Rest 끝점을 사용하여 Student 개체를 저장하면 날짜가 생성되지 않고 지정된 예외가 발생합니다.
나의 Rest Endpoint에서, 나는.
@PostMapping("/students")
public Student createStudent(@Valid @RequestBody Student student){
return studentRepository.save(student);
}
여기 내 실체가...
@Entity
@Table(name = "students")
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
public class Student implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotBlank
private String name;
@NotBlank
private String surname;
@Column(nullable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
@CreatedDate
private Date createdAt;
@Column(nullable = false)
@Temporal(TemporalType.TIMESTAMP)
@LastModifiedDate
private Date updatedAt;
오류:
2018-06-20 21:43:40.821 DEBUG 8844 --- [nio-8080-exec-1] org.hibernate.SQL
: select next_val as id_val from hibernate_sequence for update
2018-06-20 21:43:40.874 DEBUG 8844 --- [nio-8080-exec-1] org.hibernate.SQL : update hibernate_sequence set next_val= ? where next_val=?
2018-06-20 21:43:40.971 DEBUG 8844 --- [nio-8080-exec-1] org.hibernate.SQL : insert into students (created_at, name, surname, updated_at, id) values (?, ?, ?, ?, ?)
2018-06-20 21:43:40.978 TRACE 8844 --- [nio-8080-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [TIMESTAMP] - [null]
2018-06-20 21:43:40.979 TRACE 8844 --- [nio-8080-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] - [Shilpa]
2018-06-20 21:43:40.980 TRACE 8844 --- [nio-8080-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [VARCHAR] - [Manware]
2018-06-20 21:43:40.980 TRACE 8844 --- [nio-8080-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [TIMESTAMP] - [null]
2018-06-20 21:43:40.981 TRACE 8844 --- [nio-8080-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [5] as [BIGINT] - [3]
2018-06-20 21:43:41.003 WARN 8844 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1048, SQLState: 23000
2018-06-20 21:43:41.003 ERROR 8844 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : Column 'created_at' cannot be null
2018-06-20 21:43:41.006 INFO 8844 --- [nio-8080-exec-1] o.h.e.j.b.internal.AbstractBatchImpl : HHH000010: On release of batch it still contained JDBC statements
2018-06-20 21:43:41.009 ERROR 8844 --- [nio-8080-exec-1] o.h.i.ExceptionMapperStandardImpl : HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute statement]
2018-06-20 21:43:41.041 ERROR 8844 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement] with root cause
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'created_at' cannot be null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_112]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_112]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_112]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_112]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.45.jar:5.1.45]
at com.mysql.jdbc.Util.getInstance(Util.java:408) ~[mysql-connector-java-5.1.45.jar:5.1.45]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936) ~[mysql-connector-java-5.1.45.jar:5.1.45]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) ~[mysql-connector-java-5.1.45.jar:5.1.45]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909) ~[mysql-connector-java-5.1.45.jar:5.1.45]
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527) ~[mysql-connector-java-5.1.45.jar:5.1.45]
Spring JPA에서 감사를 활성화하는 Configuration 클래스의 @EnableJpaAuditing 주석이 누락되었을 수 있습니다.
언급URL : https://stackoverflow.com/questions/50947741/simple-spring-createddate-annotation-is-not-working-for-me
반응형
'sourcecode' 카테고리의 다른 글
키와 비밀 대신 IAM 역할을 사용하도록 이 Spring-Boot 앱을 구성하는 방법은 무엇입니까? (0) | 2023.08.01 |
---|---|
Android에서 뒤로 단추 사용 안 함 (0) | 2023.08.01 |
네트 처리 방법::jquery agax에서 ERR_CONNECTION_REFUSED가 발생했습니다. (0) | 2023.08.01 |
도커 컨테이너 내에서 cron 작업을 실행하는 방법은 무엇입니까? (0) | 2023.08.01 |
JTDS를 사용하여 Spring Boot에서 HikariCP 구성 (0) | 2023.08.01 |