2017-11-25 261 views
-1

我已經看到類似的問題,但在我的情況下,它不起作用。 我需要獲取序列的下一個值。在postgreSQL中使用jpa存儲庫從序列獲取下一個值

模型類:

@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裏,這是我現在用的。

相關問題