Spring Data Jpa 在Sping Boot 应用程序中初始化H2数据库失败

dbf7pr2w  于 4个月前  发布在  Spring
关注(0)|答案(1)|浏览(73)

请考虑以下JPA实体:

@Entity
@Table(name = "addresses")
@Getter
@Setter
@NoArgsConstructor
public class AddressEntity {

  @Id
  @GeneratedValue
  private Long id;

  private String city;
  private String postalCode;
  private String street;
  private String houseNumber;

}

字符串
我已经创建了一个Sping Boot 应用程序,它应该在H2数据库中创建这个表,并使用一些值初始化它。

spring:
  h2:
    console:
      enabled: true
      path: /h2
  datasource:
    url: jdbc:h2:mem:/testdB
    username: sa
    password:
    driverClassName: org.h2.Driver
  jpa:
    hibernate:
      ddl-auto: none
    generate-ddl: true
    defer-datasource-initialization: true
    database-platform: org.hibernate.dialect.H2Dialect
  sql:
    init:
      data-locations:
        - classpath:addresses.sql


我的addresses.sql如下所示:

INSERT INTO ADDRESSES (ID, CITY, POSTAL_CODE, STREET, HOUSE_NUMBER)
VALUES (0, 'NYC', '10020', 'Main Street', '32 A')


当我启动我的应用程序时,我遇到了一个org.h2.jdbc.JdbcSQLSyntaxErrorException。它说
expected "DIRECT, SORTED, DEFAULT, VALUES, SET, (, WITH, SELECT, TABLE, VALUES";的值。“
我在这里我的知识的尽头。语法似乎对我来说是正确的。当启动应用程序而没有初始化表,表被创建。我可以写数据到我的地址表在H2控制台内使用完全相同的sql脚本,我正在使用初始化表。有人可以帮助我吗?

ne5o7dgx

ne5o7dgx1#

在sql文件的末尾添加一个;。这应该可以解决你的问题。

相关问题