【发布时间】:2020-11-07 02:02:29
【问题描述】:
我正在开发 Spring Boot 应用程序,并希望使用内存中的 h2 数据库在我的机器上进行测试。配置必须在 yml 文件中完成。该应用程序使用 Hibernate 作为 JPA 实现 - 我创建了一些标有 @Entity 注释的实体类,因此我还希望在最终访问数据库后看到该表。
不幸的是,我无法访问我的 h2 数据库并出现错误:找不到数据库“mem:/mydatabase”,要么预先创建它,要么允许远程创建数据库(不推荐在安全环境中使用)[90149-200] 90149 /90149"
我一直在尝试各种方法来解决问题,例如不同的数据库类型(例如文件)或从 application.yml 文件中添加/删除项目。不幸的是,它们都不起作用。
我不知道我是否遗漏了什么或什么。非常感谢所有提示。
application.yml
server:
port: 8081
spring:
datasource:
url: jdbc:h2:mem:/mydatabase
username: sa
password:
driverClassName: org.h2.Driver
h2:
console:
enabled: true
path: /h2
settings:
web-allow-others: true
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: update
实体示例
import lombok.*;
import org.hibernate.annotations.CreationTimestamp;
import javax.persistence.*;
import java.time.LocalDateTime;
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString
public class Accident {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "machine")
private long machine;
@Column(name = "accidenttype")
private int accidentType;
@Column(name="startedat")
private LocalDateTime startedAt;
@Column(name = "reportedat")
@CreationTimestamp
private LocalDateTime reportedAt;
}
【问题讨论】:
-
错误日志是什么?
-
尝试删除数据库地址中的“/”,如
jdbc:h2:mem:mydatabase。 -
标签: java spring spring-boot hibernate h2