当前位置: 首页 > 知识库问答 >
问题:

Spring JPA Hibernate无法自动生成Id H2表

乌学博
2023-03-14

在尝试创建具有自动生成ID的表时,我遇到了一个异常:

commandAcceptanceException:“执行DDL时出错”create table seat(id bigint not null,description varchar(255),num integer not null,PROCY decimal(19,2),row char(255)not null,primary key(id))“via JDBC语句”。

spring.datasource.driverClassName = org.h2.Driver
spring.datasource.username = sa
spring.datasource.password =
spring.jpa.properties.hibernate.hbm2ddl.auto=update
import java.math.BigDecimal
import javax.persistence.*

@Entity
data class Seat(
@Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id")
                val id: Long,
                val row: Char,
                val num: Int,
                val price: BigDecimal,
                val description: String) {
    override fun toString(): String = "Seat $row-$num $$price ($description)"
}
constructor() {
        ...
        for (row in 1..15) {
            for (num in 1..36) {
                hiddenSeats.add(Seat(0, (row+64).toChar(), num, getPrice(row,num), getDescription(row,num) ))
            }
        }
    }
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.H2Dialect

我试图自己生成Id,但没有成功。我一定是错过了什么,因为我是新的科特林,春靴和冬眠,但在这里撞到了墙。请指教!

jdk-14,Spring Boot v2.2.6.发布,使用方言:org.hibernate.dialt.h2dialion

共有1个答案

袁轶
2023-03-14

这里有一个问题val ROW:char,ROW是SQL中的保留字。更改var

 类似资料:
  • 我在Postgres数据库中创建了一个新表 但我得到的错误是: 我已将library.xml文件放在资源文件夹中。我是jooq的新手,Spring启动。请帮助我如何自动生成jooq类。

  • 我试图为我的MySql数据库自动生成jOOQ java代码,但它不起作用。我在maven的JSP项目中使用jOOQ。 xml 我正在使用Tomcat在eclipse上运行这个项目。当我想运行Web应用程序时,我会清理项目,然后清理项目 当我运行该项目时,并没有生成数据库的java代码<正如文档中所说,由于我在jOOQ中使用maven,因此我可以自动生成JAVA代码,而无需使用cli。无需创建库。x

  • 问题内容: 有人知道如何从1开始生成,以便下一个对象具有2,依此类推吗? 我尝试了以下方法,但不起作用: 问题答案: 您需要一个 静态的 类成员来跟踪上次使用的索引。确保还实现一个复制构造函数: 更新: 正如@JordanWhite建议的那样,您可能希望使static计数器成为 atomic ,这意味着可以安全地同时使用(即一次在多个线程中使用)。为此,将类型更改为: 增量读取和复位操作变为:

  • 安装配置KnpSnappyBundle扩展 先安装扩展,执行: composer require knplabs/knp-snappy-bundle 再安装wkhtmltopdf工具 wget http://download.gna.org/wkhtmltopdf/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz xz -d wkh

  • 问题内容: 我已擦除并安装了该软件,并已按照本教程进行操作,以在新的OS X上启动并运行。第一步是下载MySQL for Mac OS X 10.9(x86,64位),DMG Archive (在10.11上运行)。 ,他们在本教程中建议)。当我完成安装MySQL时,我收到一条消息,内容是: 太奇怪了,我从未见过这样的信息。之后,我通过“首选项窗格”启动了MySQL,然后在终端上使用命令进行下一步

  • 我有以下spring配置: 我在global-method-security中启用了proxy-target-class,因为我希望在控制器中使用@preauthorize注释(我知道spring团队不鼓励这样做),并且在保存对象时使用aop aspectJ作为服务中的“拦截器”。 这似乎是因为启用了global-method-security中的代理配置,并且默认的aop,aspectj正在使用