【发布时间】:2022-01-14 16:55:06
【问题描述】:
尝试在启动时将数据实现到我的 Spring Boot 应用程序中。 据我研究,它应该是这样工作的:
user_role 类:
@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class UserRole {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String role;
}
schema.sql
CREATE TABLE `user_role` (
`id` bigint(20) NOT NULL,
`role` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
data.sql
INSERT INTO user_role (role) VALUES ('ADMIN');
INSERT INTO user_role (role) VALUES ('USER');
application.properties
spring.jpa.hibernate.ddl-auto=none
spring.jpa.defer-datasource-initialization=true
spring.sql.init.mode=always
但如果我尝试这样做,我在构建应用程序时只会收到以下错误:
SQL 语句中的语法错误 "CREATE TABLE
USER_ROLE(IDBIGINT([*]20) NOT NULL,ROLEVARCHAR(255) DEFAULT NULL, PRIMARY KEY (ID)) ENGINE=INNODB DEFAULT字符集=UTF8MB4"; 预期“数组,不可见,可见,NOT,NULL,AS,DEFAULT,GENERATED,ON,NOT,NULL,AUTO_INCREMENT,DEFAULT,NULL_TO_DEFAULT,序列,选择性,COMMENT,CONSTRAINT,COMMENT,PRIMARY,UNIQUE,NOT,NULL,检查, REFERENCES, AUTO_INCREMENT, ., )"; SQL 语句: CREATE TABLEuser_role(idbigint(20) NOT NULL,rolevarchar(255) DEFAULT NULL, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 [42001-202]
有人知道出了什么问题吗?
【问题讨论】:
-
您有什么特别的原因要自己创建表格吗?您可以扩展 spring data jpa 存储库并创建表
-
@Gurkirat Singh Guliani:不,没有具体原因。我已经用 spring boot 数据创建了表。我只想在应用程序启动时在“user_role”表中实现数据“admin”和“user”。有没有更简单的方法?
标签: java spring-boot jpa