Hibernate HSQLDB“;精度或刻度超出范围”;及;用户缺少权限或找不到对象“;休眠hbm2ddl导入文件时出错

Hibernate HSQLDB“;精度或刻度超出范围”;及;用户缺少权限或找不到对象“;休眠hbm2ddl导入文件时出错,hibernate,spring-boot,spring-data-jpa,hsqldb,Hibernate,Spring Boot,Spring Data Jpa,Hsqldb,我不知道我做错了什么 Schema.sql只是为了说明如何HSQLDB查看表格 我不知道。我是瞎了还是 指向“精度或比例超出范围”的错误: org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(Genera

我不知道我做错了什么

Schema.sql只是为了说明如何HSQLDB查看表格

我不知道。我是瞎了还是

指向“精度或比例超出范围”的错误:

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:315)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166)
Truncated. see log file for complete stacktrace
Caused By: java.sql.SQLSyntaxErrorException: precision or scale out of range
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)
Truncated. see log file for complete stacktrace
Caused By: org.hsqldb.HsqlException: precision or scale out of range
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.ParserDQL.readTypeDefinition(Unknown Source)
at org.hsqldb.ParserTable.readColumnDefinitionOrNull(Unknown Source)
at org.hsqldb.ParserTable.readTableContentsSource(Unknown Source)
Truncated. see log file for complete stacktrace
这是一个实体:

@Entity
@Entity
@Table(name = "MY_TABLE", schema = "MY_SCHEMA", catalog = "")
public class MyTable {
@Id
@Column(name = "ID", nullable = false, precision = 0)
private long id;
@Basic
@Column(name = "STR1", nullable = true, length = 2265)
private String str1;
@Basic
@Column(name = "STR2", nullable = true, length = 1000)
private String str2;
@Basic
@Column(name = "NUM1", nullable = false, precision = 0)
private long num1;
@Basic
@Column(name = "STR3", nullable = true, length = 100)
private String str3;
@Basic
@Column(name = "NUM2", nullable = true, precision = 0)
private Long num2;
@Basic
@Column(name = "STR4", nullable = true, length = 36)
private String str4;
@Basic
@Column(name = "STR5", nullable = true, length = 250)
private String str5;
@Basic
@Column(name = "DT1", nullable = false)
private Time dt1;
@Basic
@Column(name = "DT2", nullable = true)
private Time dt2;
@Basic
@Column(name = "NUM3", nullable = true, precision = 0)
private Long num3;
@Basic
@Column(name = "STR6", nullable = true, length = 100)
private String str6;
@Basic
@Column(name = "STR7", nullable = true, length = 36)
private String str7;
@Basic
@Column(name = "STR8", nullable = true, length = 254)
private String str8;
}
我的schema.sql看起来像:

create table MY_SCHEMA.MY_TABLE (
ID bigint not null, STR7 varchar(36), STR6 varchar(100), NUM3 bigint not null, STR8 varchar(254), STR4 varchar(36),
STR5 varchar(250) not null, NUM2 bigint, STR1 varchar(2265), STR2 varchar(1000), DT2 time, DT1 time,
STR3 varchar(100), NUM1 bigint, primary key (ID))
Insert into MY_SCHEMA.MY_TABLE(ID,STR7,STR6,NUM3,STR8,STR4,STR5,NUM2,STR1,STR2,DT2,DT1,STR3,NUM1)
values (1234567,'str7','str6',1,'str8','str4','str5',12345,'str1','str2',null,null,'str3',12345);
我的数据.sql看起来像:

create table MY_SCHEMA.MY_TABLE (
ID bigint not null, STR7 varchar(36), STR6 varchar(100), NUM3 bigint not null, STR8 varchar(254), STR4 varchar(36),
STR5 varchar(250) not null, NUM2 bigint, STR1 varchar(2265), STR2 varchar(1000), DT2 time, DT1 time,
STR3 varchar(100), NUM1 bigint, primary key (ID))
Insert into MY_SCHEMA.MY_TABLE(ID,STR7,STR6,NUM3,STR8,STR4,STR5,NUM2,STR1,STR2,DT2,DT1,STR3,NUM1)
values (1234567,'str7','str6',1,'str8','str4','str5',12345,'str1','str2',null,null,'str3',12345);
我的代码是:

jpaProperties.put(org.hibernate.cfg.Environment.HBM2DDL_AUTO, "create");
jpaProperties.put(org.hibernate.cfg.Environment.HBM2DDL_IMPORT_FILES, "data.sql.old");
jpaProperties.put("javax.persistence.database-product-name", "HSQL");
jpaProperties.put("jadira.usertype.autoRegisterUserTypes", "true");
jpaProperties.put("jadira.usertype.databaseZone", "jvm");
jpaProperties.put("jadira.usertype.javaZone", "jvm");
我的pom.xml是spring boot.version>2.0.4.RELEASE:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-validator</artifactId>
  <version>6.1.2.Final</version>
</dependency>
<dependency>
  <groupId>com.h2database</groupId>
  <artifactId>h2</artifactId> <- 1.4.197
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.hsqldb</groupId>
  <artifactId>hsqldb</artifactId> <- 2.4.1
  <scope>runtime</scope>
</dependency>
它生成了一个稍微不同的模式,oracle看起来像,但现在我有一个新问题。 现在一切都好了。它从脚本中插入。至少我没有任何错误,所以我猜它是插入的。但当我试图看到这一点时,使用jpa,例如findAll(),它会返回新的错误:

WARN: SQL Error: -5501, SQLState: 42501
Mar 18, 2020 11:42:51 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: user lacks privilege or object not found: VW_ECONF_ATTACHEMENT in statement [select myTable0_.ID as ID1_0_, myTable0_.STR1 as STR12_0_, ..., myTable_.STR8 as STR814_0_ from MY_SCHEMA.MY_TABLE myTable_]

我应该添加用户名和密码吗?

精度在很长时间内都不能为0,我不需要您全部定义它

请解释您正在尝试做什么以及如何尝试。仅仅粘贴代码是没有帮助的。实体是IntelliJ从Oracle DB生成的。现在我正在尝试内存中的HSQL数据库。它通过代码从该实体生成schema.sql,HSQL就是这样看待它的。然后我尝试插入行,但我有这个错误。我添加了oracle方言,所以现在它创建了类似于模式的oracle,现在我有了不同的问题。