Hibernate Criteria

8 respostas
R

Como montar o seguinte criterio no hibernate

SELECT * FROM DADO
WHERE DATA LIKE ‘25/06/07’ AND PARAMETRO = 3

8 Respostas

_fs
sess.createCriteria( BLABLABLA.class ).add( Restrictions.like( "DATA", "25/06/07" ) ).add( Restrictions.eq( "ID_BLABLABLA_PARAMETRO", 3 ) ).list();

Não ajudou, né?

R
vlw LIPE mas não funcionou ele não da erro so que ele não traz resultado algum. Esse ID_PARAMETRO e a DATA são chaves compostas da tabela DADO eu mapei o xml assim:
<hibernate-mapping>
	
	<class 
		name=""
		table="DADO"
	>
	
	<composite-id>
		<key-property name="data" type="java.util.Date" column="DATA"/>
		<key-many-to-one name="parametro" class=" column="ID_PARAMETRO"/>
	</composite-id>
	
	<property
        name="valor"
        type="java.lang.String"
        column="VALOR"
        not-null="true"
        length="255"
    />
    
    </class>
	
</hibernate-mapping>
T

Testou essa condição em uma linha de comando SQL para ver se isso funciona? Isso parece meio suspeito. (Não sei que banco você está usando, então não posso dizer que ferramentas você tem de usar para testar).

P

coloca o objeto Date direto na Criteria

troque

Restrictions.like( "DATA", "25/06/07" ) ).add( Restrictions.eq

por

Restrictions.like( "DATA", minhadata) ).add.....

sendo que minhadata é seu objeto Date

talvez por causa disso

&lt;key-property name="data" type="java.util.Date" column="DATA"/&gt;
R

Vlw pessoal :!: So vou poder testar amanhã de qualquer maneira obrigado :!:

R

pessoal não deu certo estou postando o código pra ver se tem alguma coisa errado

public List get(Date data, Parametro parametro) {
		Criteria criteria = session.createCriteria(Dado.class);
		return criteria.add( Restrictions.like( "data", data ) ).add(  Restrictions.eq( "parametro", parametro ) ).list();
}
R

pessoal resolvi o código ficou assim

Criteria criteria = session.createCriteria(Dado.class);
return criteria.add( Restrictions.sqlRestriction("to_date(DATA,'DD/MM/YY') = ?", data, Hibernate.DATE ) ).add( Restrictions.eq( "parametro", parametro ) ).list();
J

estou com um problema muito parecido…
tenho que pegar os minutos também…
estou tentando criteria.add(Restrictions.sqlRestriction("dtAbertura(DATA,'YYYY-MM-DD HH.MM.SS') = ?", data, Hibernate.DATE )); e ele esta gerando:
where
dtAbertura(DATA,‘YYYY-MM-DD HH.MM.SS’) = ?

alguém poderia da uma força

Criado 25 de junho de 2007
Ultima resposta 9 de jun. de 2009
Respostas 8
Participantes 5