2017-02-24 10 views
0

の最初の5つの文字であるすべての行を選択:strとテーブルHibernateの基準値が、私はフィールドでentitityを持つ列値

str 
12345675678 
56334567676 
46746764764 
67345243524 

は私が基準のクエリを記述し、strは私の値が含まれているすべての行を選択する必要があります。私の値は常にstrの最初の5文字です。

値= "56334" 私は値= "12345" 場合56334567676

を返す必要がある場合、私は私がRestrictions.likeを試みたが、それは私の行に資金を供給しませ12345675678

を返す必要があります。

value= "56334"; 
Criteria criteria = getSession().createCriteria(MyEntity.class); 
criteria.add(Restrictions.like("str", value)); 
return criteria.list(); 

のように見える選択するネイティブの場合:

SELECT * FROM MyEntity t WHERE t.str LIKE '%12345%' // this select return success result. but my criteria return 0 
+0

を、あなたは '' '値を変更してみました= "56334" '' 'から' 'value ="%56334% "' ''? – Rakesh

答えて

1

このように、この何かを試してみてください:

criteria.add(Restrictions.like("str", value, MatchMode.START));

MatchMode documentation

+0

あなたが答えたよりも早く解決策を見つけましたが、それは正しいです! – user5620472

関連する問題