Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
In Total
관리 메뉴

A Joyful AI Research Journey🌳😊

Spring Security: No default constructor for entity 오류 해결) default 지정하기 본문

💻Bootcamp Self-Study Revision✨/Spring, Spring Boot, Java, SQL

Spring Security: No default constructor for entity 오류 해결) default 지정하기

yjyuwisely 2023. 4. 16. 18:49

230416

스프링 시큐리티를 이용해서 회원가입 후 로그인 하는 데 

계속 아래 오류가 떴었다.

No default constructor for entity:  : com.example.demo.model.User

해결책은 내가 만든 User.java에

//adding a default constructor with no arguments to the User class 
//will allow Hibernate to instantiate objects of the class during database queries
  public User() {
  }

이 코드를 적어서 default를 지정해주는 것이다.

User 클래스에 arguments가 없는 기본 생성자를 추가하면 Hibernate가 클래스의 객체를 인스턴스화할 수 있다.

참고: 인스턴스


전체 코드)

package com.example.demo.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

/* The User class in your code represents a user account, 
	which has attributes such as firstname, lastname, email, password, and roles. 
	This class is used to 1) store user information in a database, 2) authenticate users, 
	and 3) authorize access to protected resources in your application.
*/
// 회원 정보를 저장하는 User 엔티티를 만든다. 관리할 회원 정보: fisrtname, lastname, email, password
@Entity //JPA를 사용할 클래스를 명시하며, 테이블과 매핑하는 역할
//email을 통해 유일하게 구분, 동일한 값이 데이터베이스에 들어올 수 없도록 unique 속성을 지정
@Table(name = "user", uniqueConstraints = @UniqueConstraint(columnNames = "email"))
public class User {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;
	@Column(name = "firstname") 
	private String firstname;
	@Column(name = "lastname") 
	private String lastname;
	private String email;
	private String password;

	//adding a default constructor with no arguments to the User class 
	//will allow Hibernate to instantiate objects of the class during database queries
	  public User() {
	  }
	 
	public User(String firstname, String lastname, String email, String password) {
		this.firstname = firstname;
		this.lastname = lastname;
		this.email = email;
		this.password = password;
	}
	
	//MySQL에 숫자로 저장됨
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}

	public String getfirstname() {
		return firstname;
	}
	public void setfirstname(String firstname) {
		this.firstname = firstname;
	}

	public String getlastname() {
		return lastname;
	}
	public void setlastname(String lastname) {
		this.lastname = lastname;
	}

	public String getemail() {
		return email;
	}
	public void setemail(String email) {
		this.email = email;
	}

	public String getpassword() {
		return password;
	}
	public void setpassword(String password) {
		this.password = password;
	}
}

728x90
반응형
Comments