Mapping time field

Boa tarde,

Existe alguma forma de formatar o campo mapeado, para que sempre me retorne o valor apenas em time no formato 24 h?

@XmlElement(nillable = true)
@Column(name = "vl_hriniseg_trab")
@Temporal(TemporalType.TIME)
private Date vlHrinisegTrab;

public Date getVlHrinisegTrab() {
		return vlHrinisegTrab;
}

public void setVlHrinisegTrab(Date vlHrinisegTrab) {
		this.vlHrinisegTrab = vlHrinisegTrab;
}

Obrigado

Seria pra retornar de uma consulta no BD ?

Se for o caso você pode passar a formatação diretamente no seu SQL:

TO_CHAR(MINHA_COLUNA_HORA, 'HH24:MI:SS')

Sim, para retornar informações do BD!
Achei que seria possível fazer isso sem formatar direto no banco de dados!!!

Cara eu acho que deve ter alguma coisa do tipo mas até o momento eu não conheço outra forma, possa ser que exista sim, de repente a galera que já tenha um conhecimento mais aprofundado em annotations do que eu saiba de algo que venha a facilitar, mas até então não encontrei nada em materiais por aí.

Tranquilo,

Vlw pela dica tinha até esquecido disso…já me atende dessa forma!!!

Abs

Não rolou no SQL, ele até retorna apenas time, porem sem ser no formato 24 hrs!! :frowning:

@mpissolato , você está utilizando Hibernate/JPA?
Caso esteja você pode tentar criar um atributo calculado com a anotação ‘@Formula’ sem precisar alterar mais anda na classe ou na manipulação de seus objetos…
Algo como o SQL que o @Jonathan_Medeiros comentou anteriormente:

@Formula("TO_CHAR(MINHA_COLUNA_HORA, 'HH24:MI:SS')")
String dataFormatada;

Só precisaria confirmar se o pattern é esse mesmo que ele passou…

Olá @Eldius,

Estou usando Eclipselink + JPA, então o problema que não estou usando como String e sim Time!!!
Até retorna formatado porem em sem ser no formato 24Hrs!!!

@Column(name = "vl_hrfimdom_inter")
private Time vlHrfimdomInter;

Nesse caso ao invés de utilizar o to_char(), utiliza o to_timestamp(), acredito que dará certo!

Então o lance é que estava usando atributo com tipo Date ou Time e ambos o java muda automaticamente, sem respeitar formatação do SQL.
Quando mudei para string já resolveu na primeira.

@mpissolato utilizando essa anotação @Formula ele não persiste o atributo, ele apenas calcula o valor quando você busca no banco (resumindo, é um campo calculado, não persistido)…

Sim, @Eldius mas o eclipselink não tem essa anotação!!!