春季错误消息:
version: 0.0
environment_variables:
plaintext:
"INPUT_FILE": "serverless.yml"
"S3_BUCKET": ""
containers:
LambdaFunctions:
phases:
during_build:
commands:
- npm install
- aws cloudformation package --template $INPUT_FILE --s3-bucket $S3_BUCKET --output-template post-saml.yaml
artifacts:
files:
- post-saml.yaml
- beta.json
使用Spring Boot和Hibernate无法精确设置结果。
: GenerationTarget encountered exception accepting command : Error executing DDL "create table category_class (category_name varchar(255) not null, primary key (category_name)) engine=MyISAM" via JDBC Statement
: GenerationTarget encountered exception accepting command : Error executing DDL "alter table book_class add constraint FKqov24n7bmx5f0s8d74tdxbgbk foreign key (book_category) references category_class (category_name)" via JDBC Statement
我所有其他表都正确显示,但是我的类别类确实有一个字符串作为PK,这可能是问题的原因。 当我尝试通过我的categoryService和CategoryRepository扩展JPARepository来使用findAll访问mysql数据库时,会发生错误。
-Category.java-
Caused by: java.sql.SQLSyntaxErrorException: Table 'myDatabase.category_class' doesn't exist
-application.properties-
package myPackage;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.List;
@Data
@NoArgsConstructor
@Entity
@Table(name="category_class")
public class Category {
@Id
@Column(name = "categoryName")
private String name;
@OneToMany(mappedBy = "category")
private List<Book> books;
}
有人知道为什么没有在MySQL中创建我的表吗?
编辑:添加了图书类&&清理。
--- Book.java ---
spring.datasource.url= jdbc:mysql://localhost:3306/oblig2_v3
spring.datasource.username=
spring.datasource.password =
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1
spring.jpa.generate-ddl=true
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
server.port=8080
答案 0 :(得分:1)
您需要使用属性
spring.jpa.hibernate.ddl-auto=create-drop or update
您遇到的问题是您已经创建了数据库,并且没有尝试对其进行更新。
您有两个选择:
根据spring文档,此属性的以下值有效:
您可以显式设置spring.jpa.hibernate.ddl-auto和标准 休眠属性值是none,validate,update,create和 创建放置。 Spring Boot根据以下内容为您选择一个默认值 是否认为您的数据库是嵌入式的。默认为 如果未检测到模式管理器或全部未检测到模式管理器,则创建 其他情况。通过查看 连接类型。嵌入了hsqldb,h2和derby,其他是 不。从内存数据库切换到“真实”数据库时要小心 您不对表的存在做出假设,并且 新平台中的数据。您要么必须显式设置ddl-auto 或使用其他机制之一来初始化数据库。
答案 1 :(得分:0)
这与@Arnaud所说的VARCHAR
为PK
有关。由于我不想更改我的PK,因此我点击了提供的链接:#1071 - Specified key was too long; max key length is 1000 bytes
然后从其中一个答案中快速修复了问题,并使用以下命令在mysql中创建了数据库:
create database my_db character set utf8 collate utf8_bin;
解决了我的问题。
所提供的链接应该对其他遇到类似问题的人有所帮助。感谢您的帮助。