Category Archives: Banco de Dados

JPQL – Como criar query de DELETE com JOIN

E ai galera beleza?
Estou em um novo projeto muito legal, e me deparei com um problema, eu precisava fazer uma query para deletar uns dados no banco, só que pra selecionar exatamente oque eu precisava excluir era necessário utilizar joins, porém ao montar uma query parecida com essa:

delete from Queue q
where q.enabledMember = :enabledMember
and q.letter.eventReason.event.type = :eventType
and q.letter.eventReason.reason = :reason

Tomei o seguinte erro:

The entity abstract schema type declaration is malformed

Pesquisei um pouco na net e achei a seguinte solução, deletar a partir de um subselect, a query ficou assim:

delete from Queue q
where q in (select sq from Queue sq
where sq.enabledMember = :enabledMember
and sq.letter.eventReason.event.type = :eventType
and sq.letter.eventReason.reason = :reason )

Bom, é isso ai galera, espero que tenha ajudado 😀

Abraços!

Fonte: Jake Trent – JakeTrent.com

SQL – Como inserir Date / Timestamp

E ai galera beleza?

Hoje segue um exemplo de como inserir Date / Timestamp no banco de dados…
possibilitando vc adicionar uma data, hora, minuto, segundo ou todos eles em uma
tabela do banco de dados (testado no Oracle XE) !!!

Para isso utilizamos o método/função:

TO_TIMESTAMP()

Segue abaixo alguns exemplos de utilização!!!

Utilizando uma variável:

INSERT INTO sua_tabela(sua_coluna) VALUES (TO_TIMESTAMP(:variavel_string,'YYYY-MM-DD HH24:MI:SS'));

Utilizando uma string de Hora/Minuto:

INSERT INTO sua_tabela(sua_coluna) VALUES (TO_TIMESTAMP('23:59','HH24:MI'));

Utilizando uma string de Data:

INSERT INTO sua_tabela(sua_coluna) VALUES (TO_TIMESTAMP('2014-06-13','YYYY-MM-DD'));

Utilizando a Data atual:

INSERT INTO sua_tabela(sua_coluna) VALUES (CURRENT_TIMESTAMP);

Fonte: Stackoverflow – reggie