728x90
해결
Dto 패키지의 User클래스 완성하여 해결
package com.test.Dto;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import org.hibernate.annotations.CreationTimestamp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
//@DynamicInsert //insert시에 null인 필드를 제외시켜준다.
public class User {
@Id //Primary key
@GeneratedValue(strategy = GenerationType.IDENTITY)//프로젝트에서 연결된 DB의 넘버링 전략을 따라간다.
private int id;//시퀀스, auto_increment
@Column(nullable = false, length = 100)
private String username;
@Column(nullable = false, length = 100) //123456=> 해쉬 (비밀번호 암호화)
private String password;
@Column(nullable = false, length = 50)
private String email;
//@ColumnDefault("'user'")
@Enumerated(EnumType.STRING)
private RoleType role; //Enum을 쓰는게 좋다. // admin, user, manager
private String oauth; //kakao. google
@CreationTimestamp //시간이 자동 입력
private Timestamp createDate;
}
원인
application.yml 파일에서
MySQL 서버 연결시키고
JPA로 테이블 생성하게 설정한 뒤
User클래스 미완성하였더니
Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.test.Dto.User
이런 오류가 떴다.
미완성사례 1)
package com.test.Dto;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import org.hibernate.annotations.CreationTimestamp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Entity
//@DynamicInsert //insert시에 null인 필드를 제외시켜준다.
public class User {
private int id;//시퀀스, auto_increment
}
미완성사례 2)
package com.test.Dto;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import org.hibernate.annotations.CreationTimestamp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
//@DynamicInsert //insert시에 null인 필드를 제외시켜준다.
public class User {
private int id;//시퀀스, auto_increment
}
해결 예제)
package com.test.Dto;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import org.hibernate.annotations.CreationTimestamp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
//@DynamicInsert //insert시에 null인 필드를 제외시켜준다.
public class User {
@Id //Primary key
@GeneratedValue(strategy = GenerationType.IDENTITY)//프로젝트에서 연결된 DB의 넘버링 전략을 따라간다.
private int id;//시퀀스, auto_increment
@Column(nullable = false, length = 100)
private String username;
@Column(nullable = false, length = 100) //123456=> 해쉬 (비밀번호 암호화)
private String password;
@Column(nullable = false, length = 50)
private String email;
//@ColumnDefault("'user'")
@Enumerated(EnumType.STRING)
private RoleType role; //Enum을 쓰는게 좋다. // admin, user, manager
private String oauth; //kakao. google
@CreationTimestamp //시간이 자동 입력
private Timestamp createDate;
}
application.yml 참고 설정)
server:
port: 8030
servlet:
context-path: /
encoding:
charset: UTF-8
enabled: true
force: true
spring:
mvc:
view:
prefix: /WEB-INF/view/
suffix: .jsp
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/testdb?serverTimezone=Asia/Seoul
username: testuser
password: 1111
jpa:
open-in-view: true
hibernate:
ddl-auto: create
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate.format_sql: true
jackson:
serialization:
fail-on-empty-beans: false
cos:
key: cos1234
728x90
댓글