Java @实体批注未在h2数据库中自动生成表
@Entity注释在使用注释后不会自动在h2数据库中创建表。有什么不对劲吗?我已经排除了故障并尝试了其他方法,但它不会自动创建 我的模型是:Java @实体批注未在h2数据库中自动生成表,java,spring,spring-boot,jpa,spring-data-jpa,Java,Spring,Spring Boot,Jpa,Spring Data Jpa,@Entity注释在使用注释后不会自动在h2数据库中创建表。有什么不对劲吗?我已经排除了故障并尝试了其他方法,但它不会自动创建 我的模型是: @Entity public class UserAccount { @Id @GeneratedValue private int id; private String userName; private String email; @Temporal(TemporalType.DATE) pr
@Entity
public class UserAccount {
@Id
@GeneratedValue
private int id;
private String userName;
private String email;
@Temporal(TemporalType.DATE)
private Date dateCreated;
private Set <Transaction> transactions = new HashSet<>();
我的pom.xml文件是:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.Wallet</groupId>
<artifactId>Wallet</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Wallet</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
4.0.0
org.springframework.boot
spring启动程序父级
2.1.9.1发布
电子钱包
钱包
0.0.1-快照
钱包
SpringBoot的演示项目
1.8
org.springframework.boot
spring引导启动器数据jpa
org.springframework.boot
SpringBootStarterWeb
com.h2数据库
氢
运行时
org.springframework.boot
弹簧起动试验
测试
org.springframework.boot
springbootmaven插件
请帮助我,我的代码有什么问题?
:将类定义为ORM的实体,提供的名称可用于ORM特定的查询(JPQL、HSQL)@Entity
:这将与数据库中的单个表进行映射。因此,如果编写任何本机查询,可以使用此表名。(这是ORM的入口点)@Table
spring:
datasource:
url: jdbc:h2:file:./test_db;DB_CLOSE_ON_EXIT=FALSE;IFEXISTS=FALSE;DB_CLOSE_DELAY=-1
driverClassName: org.h2.Driver
username: sa
password:
validationQuery: SELECT 1
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: create
// If you want to view the tables in console
h2:
console:
enabled: true
path: /h2-console
除此之外,还有许多其他属性可以指定。
例如:
spring:
jpa:
hibernate:
naming:
physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
properties:
hibernate.format_sql: true
generate-ddl: true
show-sql: true
- 看一看这里和一些设置H2与弹簧启动
- 另外,请参阅Spring Boot中的数据库
- 您可以在生产中使用数据库迁移不建议您使用这些属性创建模式
spring:
jpa:
hibernate:
naming:
physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
properties:
hibernate.format_sql: true
generate-ddl: true
show-sql: true