Estou tentando obter o valor da minha sequence para exibir na view antes de realizar um cadastro mas não estou conseguindo porque está dando um erro dizendo que a mesma não está mapeada...Será que alguém poderia me ajudar? Qnd rodo direto no postgres essa string sql ela retorna certo
Obrigado
Segue o erro:
Caused by: org.hibernate.hql.ast.QuerySyntaxException: alerta_sequence is not mapped [select last_value as id_alerta from alerta_sequence]
segue meu Alerta.java
@Entity
@Table(name="alerta")
@SequenceGenerator(name = "sequence", sequenceName = "alerta_sequence")
public class Alerta {
@Id
@NotNull
@GeneratedValue(generator="sequence", strategy=GenerationType.AUTO)
@Column(name="id_alerta")
private Long idalerta;
AlertaDAO
public int retornaSequenceAlerta(){
Query q = this.em.createQuery("select last_value as id_alerta from alerta_sequence");
return (Integer) q.getSingleResult();
}
Carinha, o problema aqui é que você não está executando SQL do POSTGRESQL, mas sim o “sql orientado a objeto” do JPA.
Para que você quer acessar o valor da sequence? É para popular o conteúdo de um campo? Então verifique que há um jeito de fazer com que a coluna seja populada por sequence.
Agora, se você quer simplesmente usar o valor da sequence para algum procedimento místico numerológico cabalístico, aí você poderia pegar o valor da sequence usando JDBC…
Pois é, Quero obter o valor da sequence pra popular o conteúdo de um campo e exibir na página de um formulário. Poderia fazer usando o CriteriaBuilder do JPA mas estou apanhando pra montar…
JDBC eu já usei, mas como estou usando JPA não gostaria de misturar as coisas.