在 postgreSQL 中使用 jpa 存储库从序列中获取下一个值
Posted
技术标签:
【中文标题】在 postgreSQL 中使用 jpa 存储库从序列中获取下一个值【英文标题】:Getting next value from sequence with jpa repository in postgreSQL 【发布时间】:2018-05-09 11:13:43 【问题描述】:我见过类似的问题,但在我的情况下它不起作用。 我需要获取序列的下一个值。
模型类:
@Entity
@Table(name = "item")
public class Item
@Id
@SequenceGenerator(name = "id_seq", sequenceName = "item_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_seq")
@Column(name = "id", updatable = false)
protected Long id;
Jpa 存储库:
public interface ItemRepository extends JpaRepository<Item, Long>
List<Item> findFirst10ByOrderByPublicationDateDesc();
@Query(value = "SELECT item_id_seq.nextval FROM item", nativeQuery =
true)
Long getNextSeriesId();
我将不胜感激。
【问题讨论】:
【参考方案1】:我找到了解决方案:
@Query(value = "SELECT nextval('item_id_seq')", nativeQuery =
true)
Long getNextSeriesId();
我的错误是我使用了 oracle 语法而不是我正在使用的 postgreSQL。
【讨论】:
以上是关于在 postgreSQL 中使用 jpa 存储库从序列中获取下一个值的主要内容,如果未能解决你的问题,请参考以下文章
在 Postgresql 中逐行处理 Java 8 JPA 存储库流
JPA 和 PostgreSQL:如何调用具有 void 返回类型的存储过程?
PostgreSQL 9.4,在我的 JPA namedQuery 中使用 earth_distance