Reputation: 1465
I've seen the similar question, but in my situation it doesn't work. I need to get the next value of the sequence.
Model class:
@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 Repository:
public interface ItemRepository extends JpaRepository<Item, Long> {
List<Item> findFirst10ByOrderByPublicationDateDesc();
@Query(value = "SELECT item_id_seq.nextval FROM item", nativeQuery =
true)
Long getNextSeriesId();
}
I would appreciate any help.
Upvotes: 10
Views: 20887
Reputation: 911
The same issue I also faced. The DB has sequecne under schema and after adding schema it working fine. My code is like -
@Entity
@Table(name = "Contact", schema = "tshema")
public class ContactUs implements AppEntity {
@Id
@SequenceGenerator(name = "OID_SEQ", sequenceName = "CONTACTUS_OID_SEQ", allocationSize = 1, schema = "tshema")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "OID_SEQ")
@Column(name = "oid", unique = true, nullable = false, updatable = false)
private Long oid;
}
Upvotes: 0
Reputation: 1465
I've found solution:
@Query(value = "SELECT nextval('item_id_seq')", nativeQuery =
true)
Long getNextSeriesId();
My mistake was that I used oracle syntax instead of postgreSQL, which I am using.
Upvotes: 19