JPQL Select comparando datas (resolvido)

Estou tendo problemas com select, tanto as classes esta como
tabela1
@Column(name = “DT_COTACAO”)
@Temporal(TemporalType.DATE)
private Date dtCotacao;
tabela2
@Column(name = “DT_RENDIMENTO”)
@Temporal(TemporalType.DATE)
private Date dtRendimento;

no banco de dados ambos os campos estão como DATE.
Porem se eu fizer um select em ambas as tabelas, uma me retorna o valor e outra não dependendo da data.

e no mesmo método eu tenho as consultas:
Date dt = Wed May 10 00:00:00 BRT 2017;
(“select t from tabela1 as t where t.dtCotacao=:dt”).setparameter(“dt”,dt).getresult…
(“select t from tabela2 as t where t.dtRendimento=:dt”).setparameter(“dt”,dt).getresult…

cotacao - Wed May 10 00:00:00 BRT 2017
rendimento - 2017-05-10
Ai vem o mais estranho se eu pegar outra data ex: dt= Wed May 11 00:00:00 BRT 2017;
me retorna
cotacao - Wed May 11 00:00:00 BRT 2017
rendimento - null
Mesmo confirmando que no banco contem em ambas as tabelas os registros com data 2017-05-11

Antes de inserir no banco, formate as datas para o padrão do MySQL. Talvez seja esse o problema.

1 curtida

Checka como está o timezone do componente que está passando a data, outra solução é setar o timezone diretamente no servidor.

Exemplo:

<p:calendar id="time" value="#{calendarView.date11}" pattern="dd/MM/yyyy" timeZone="America/São_Paulo" />

Então pessoal, tenho que achar uma solução para isso, porque se possui mais de uma maneira de inserção poderá dar problemas, tem que ter uma maneira de resolver, ah se eu colocar <= ele traz o,>=traz, < não traz,> não traz e = não traz. não sei se é um problema no eclipse. ou o que pode ser e o banco usado é oracle.

Note a diferença entre o padrão das datas

Checka a tabela do banco se ambos estão com tipo DATE, acredito que uma delas possa estar com DATETIME ou TIMESTAMP, algo do tipo.

Ai está o problema estão todas iguais, inclusive no banco os dados estão iguais, além disso eu uso uma tabela para abastecer a outra. Não sei o motivo mas o eclipse está diferenciando mesmo as classes estarem iguais.

Olha então as anotações do tipo de dado nos pojos ou manda gerar eles de novo e verifica se teve alteração. Lembre-se de fazer um backup do projeto antes.

Estou achando que seja um bug no eclipse, pois ele só não acha caso eu coloque ‘=’ mas se eu colocar ‘<=’ ou ‘>=’ ele traz o registro, e para ter certeza que não se trata de uma data diferente se eu colocar ‘<’ ou ‘>’ não traz, então quer dizer que ele é igual.

Resolvido, tive que usar trunc();