Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在JPA/Hibernate中创建和使用序列生成器而不使用列?_Java_Hibernate_Postgresql_Jpa_Sequence - Fatal编程技术网

Java 是否可以在JPA/Hibernate中创建和使用序列生成器而不使用列?

Java 是否可以在JPA/Hibernate中创建和使用序列生成器而不使用列?,java,hibernate,postgresql,jpa,sequence,Java,Hibernate,Postgresql,Jpa,Sequence,我正在使用JPA(Hibernate),我想创建一个序列,例如这样的序列 CREATE SEQUENCE my_seq INCREMENT 1 MINVALUE 1 MAXVALUE 999999 START 1; 此序列不应指定给特殊的列或表。我只想查询下一个值: SELECT nextval('my_seq') 通过这样做,我将有一个很好的可能性为我喜欢的任何东西生成唯一的ID 顺便说一句:我正在使用Hibernate 4.2和PostgreSQL 9.3 @Enti

我正在使用JPA(Hibernate),我想创建一个序列,例如这样的序列

CREATE SEQUENCE my_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 999999
  START 1;
此序列不应指定给特殊的列或表。我只想查询下一个值:

  SELECT nextval('my_seq')
通过这样做,我将有一个很好的可能性为我喜欢的任何东西生成唯一的ID

顺便说一句:我正在使用Hibernate 4.2和PostgreSQL 9.3

@Entity
public class Event implements Serializable {
  @SequenceGenerator(name="Event_Seq", sequenceName="Event_Seq", initialValue = 1, allocationSize = 1)
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "Event_Seq")
  @Id
  private Long id;
}

您可以通过脚本创建
Event_Seq
,也可以将其留给Hibernate创建(前提是您使用的是模式生成)。您还需要支持序列的数据库。

使用SQL查询。完成。对于查询,这是可以的,但是对于创建,也可以?在某些时候,您需要SQL脚本或数据库设置/迁移工具(如FlywayDB或Liquibase)。我会立即使用它们,而不是依赖Hibernate。我已经使用了Liquibase,对此我很满意,但我想保留将persistence.xml更改为create的可能性。我不想仅仅为了使用序列而创建单独的实体。你不必这样做。这只是一个例子。