Obter id de uma sequence no postgres

como eu faço pra obter o id de uma sequence no postgres ??

preciso pegar o próximo id a ser gerado na sequence, fazer umas regras e salvar o registro com esse id. Estou usando JPA.
exemplo;

Integer id = recuperaIdSequence(..);//como fazer isso? //regras Classe c = new Classe(); c.setIdProtocolo(id); c.setXXX(xx); c.setYYY(yy); entitymanager.persist(c)

Hoje para persistir um objeto faco:

//regras Classe c = new Classe(); c.setXXX(xx); c.setYYY(yy); entitymanager.persist(c)

o mapeamento esta assim:

@Id @SequenceGenerator(name = "protocolo_seq", sequenceName = "schema1.protocolo_id_protocolo_seq") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "protocolo_seq") @Column(name = "id_protocolo", unique = true, nullable = false)

E está dando erro, pq o JPA está certo.

Eu acho q o nome da sequence deve ser só “protocolo_id_protocolo_seq” e não “schema1.protocolo_id_protocolo_seq”.
Tira esse “schema1” e testa.

nao ta dando erro, ta ok

o que eu preciso é saber o id que a sequence vai gerar, pois vou enviá-lo via webservice antes de salvar.

esse id vai servir como um numero de transacao entre a aplicacao 1 e aplicacao 2. Entao vou enviar o id e registrar no banco que aquela conexao entre os WS esta registrada na tabela com o id 4 por ex. e só posso salvar se a conexao foi realizada,

Já tentou retornar o c.getId() depois de ter feito entitymanager.persist©?
Pq se não me engano o id é setado na transação.