jakarta-ee - 当 ddl 生成为 create-or-extend-tables 时,hsqldb 无法与 eclipselink 一起使用

标签 jakarta-ee eclipselink hsqldb

当我将 ddl- Generation 设置为 drop-and-create-tables 时,一切都很好。但是当它设置为创建或扩展表时,我得到了这个:

Internal Exception: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: PERSON_ID_SEQ

这是我的设置方法:

持久性.xml

<persistence ...>
  <persistence-unit name="persistencetest">
    <properties>
      <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />

      <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:test-db" />

      <property name="javax.persistence.jdbc.user" value="sa" />
      <property name="javax.persistence.jdbc.password" value="" />

      <property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
      <property name="eclipselink.ddl-generation.output-mode" value="database" />
    </properties>

    <class>test.Person</class>
  </persistence-unit>
</persistence>

Person.java

@Entity
public class Person
{
  @Id
  @SequenceGenerator(name = "id_seq", sequenceName = "PERSON_ID_SEQ")
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_seq")
  private long id;

  ...
}

pom.xml

...
<dependency>
  <groupId>org.glassfish.extras</groupId>
  <artifactId>glassfish-emdedded-all</artifactId>
  <version>3.1</version>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>org.eclipse.persistence.jpa</artifactId>
  <version>2.4.1</version>
  <scope>provided</scope>
</dependency>

<dependency>
  <groupId>org.hsqldb</groupId>
  <artifactId>hsqldb</artifactId>
  <version>2.2.9</version>
</dependency>
...

那么是什么导致 create-or-extend-tables 失败而 drop-and-create-tables 运行良好?

最佳答案

这是一个错误,还是只是记录的警告?如果没有发生错误,则只是一个警告,您可以忽略它。这只是测试看看序列是否存在。

如果出现错误,请包含完整的异常堆栈和 SQL 日志。

关于jakarta-ee - 当 ddl 生成为 create-or-extend-tables 时,hsqldb 无法与 eclipselink 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17335153/

相关文章:

java - 如何向用户显示一长串 Web 服务结果?

java - 无法使 Eclipselink 2 级缓存工作

java - 无法启动 HSQLDB (java.net.BindException : Address already in use)

java - 为 Spring-MVC 项目配置 MySQL 数据库

java - 恢复 HyperSQL 数据库

java - 重定向来自过滤器的响应会抛出 IllegalStateException

java - 如何处理并发数据库请求或如何在长时间运行的查询正在进行时运行短 SQL 查询

eclipse - 如何将 Eclipse Classic 升级到 Java EE?

java - 如何在运行时使用 MOXy 从列表中的对象中编码特定字段

java - 尝试对 java 持久性实体管理器进行单元测试时无法获取数据源