に私のギアを動作しません:Hibernateの基準は、SQLiteの
にHibernate 3.6.9
HibernateはSQLiteの方言http://code.google.com/p/hibernate-sqlite/
から私のエンティティクラスは
、単純です@Entity
@Table(name = "RegistrationRequests")
public class RegistrationRequest {
@Id
@GeneratedValue
Integer id;
String uuid;
... getters and setters ...
}
uuidはUUID.randomUUID()。toString()に割り当てられ、正しくデータベースに保持されます。 今、問題は、Hibernate Criteriaを使用して、データベースから格納された要求を取得しようとするときです。
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(RegistrationRequest.class);
criteria.add(Restrictions.eq("uuid", '\'' + uuid + '\''));
List requests = criteria.list();
は常に(すなわち、一つのレコードがデータベースから選択される)
select
this_.id as id2_0_,
this_.created as created2_0_,
this_.email as email2_0_,
this_.isVerified as isVerified2_0_,
this_.name as name2_0_,
this_.password as password2_0_,
this_.surname as surname2_0_,
this_.uuid as uuid2_0_
from
RegistrationRequests this_
where
this_.uuid='ced61d13-f5a7-4c7e-a047-dd6f066d8e67'
結果が正しい、私は、生成されたSQLを実行ただし場合、空の結果が得られます。
私は一種の困惑していますが、あなたはときにこれ、私の知る限り休止API(私はNHibernateはを使用)について承知していて、where句の値を自分で設定する必要がいけない...ない結果と
を ' '\' '+ UUID + '\'''奇妙に見えます。あなたが 'arround the uuid'なしでuuidを使うとどうなりますか? – andih