작성
·
26
0
data.sql -> import.sql로 이름 변경
user 테이블 명을 users나 다른 테이블 명으로 수정해야 하며 sql 쿼리문에서의 ""는 삭제해야 합니다.
package com.sixplace.user;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.*;
import lombok.*;
import java.util.Set;
@Entity
@Table(name = "users")
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class User {
@JsonIgnore
@Id
@Column(name = "user_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId;
@Column(name = "username", length = 50, unique = true)
private String username;
@JsonIgnore
@Column(name = "password", length = 100)
private String password;
@Column(name = "nickname", length = 50)
private String nickname;
@JsonIgnore
@Column(name = "activated")
private boolean activated;
@ManyToMany
@JoinTable(
name = "user_authority",
joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "user_id")},
inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "authority_name")})
private Set<Authority> authorities;
}
insert into users (username, password, nickname, activated) values ('admin', '$2a$08$lDnHPz7eUkSi6ao14Twuau08mzhWrL4kyZGGU5xfiGALO/Vxd5DOi', 'admin', 1);
insert into users (username, password, nickname, activated) values ('user', '$2a$08$UkVvwpULis18S19S5pZFn.YHPZt3oaqHZnDwqbCW9pft6uFtkXKDC', 'user', 1);
insert into authority (authority_name) values ('ROLE_USER');
insert into authority (authority_name) values ('ROLE_ADMIN');
insert into user_authority (user_id, authority_name) values (1, 'ROLE_USER');
insert into user_authority (user_id, authority_name) values (1, 'ROLE_ADMIN');
insert into user_authority (user_id, authority_name) values (2, 'ROLE_USER');
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
알함님, Spring Boot 3.x 버전에서 data.sql
관련 오류를 해결하기 위해 import.sql
로 파일 이름을 변경하고, SQL 관련 문제를 해결하는 방법을 문의하셨군요. 이와 관련된 문제는 Spring Boot의 데이터베이스 초기화 설정이 변경되어 발생하는 경우가 많습니다.
Spring Boot 3.x에서 data.sql
오류:
import.sql
파일을 사용하는 것이 데이터베이스를 초기화하는 데 더 적합할 수 있습니다.data.sql
대신 import.sql
로 파일명을 변경하면, Hibernate가 데이터베이스 초기화 시 이를 자동으로 실행하게 됩니다.테이블 명 및 쿼리 문제 해결:
user
테이블을 정의할 때 users
와 같은 새로운 이름을 사용하는 것이 좋습니다. 이는 SQL 표준을 따르며, 일부 데이터베이스에서는 user
가 예약어일 수 있기 때문입니다.관련된 내용으로 더 자세한 해결 방법은 아래 강의의 질문 게시판에서 확인하실 수 있습니다:
- 스프링부트 3.x 버전 data.sql 삽입 오류 발생할 경우 해결 방법
위 게시물은 스프링 부트 3.x와 관련된 유사한 오류 상황과 해결 방법에 대해 설명하고 있습니다. 강의와 직접적으로 관련된 질문일 경우 강의의 질문 게시판을 활용하시면 더 나은 해결 방법을 찾을 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.