一意の列に基づいて行を選択する方法。 私のテーブルには、Idが自動的に生成されます。テーブルスキーマ内で一意の行を選択するために電話番号を使用しています。HQL選択クエリ
例:ここでは
Id Phone Name
1 2209897 abc
2 5436567 def
、Idは主キーです。電話番号は です。
私はログインするために電話を使用しています。 リストを生成するのではなく、出力として単一の行を作成します。
@Repository
public class CustomerDetailsDAOImpl implements CustomerDetailsDAO {
@Autowired
SessionFactory sessionFactory;
@Override
@Transactional
public List<CustomerDetails> getCustomer(String customerPhone) {
Session session = sessionFactory.openSession();
Query q = session.createQuery("from CustomerDetails where customerPhone =:p");
q.setParameter("p", customerPhone);
List<CustomerDetails> customer = q.getResultList();
session.close();
return customer;
}
ちょうど 'CustomerDetails顧客= q.getResultList()を使用し、' List'を使用しないでくださいを; '、'場合:あなたは意志その後、以上の1行を返しますp' 'ResultSizeException'を取得しますが、データベース内のすべての電話番号が確実に一意であれば問題はありません。 – px06
@ px06可能であれば、そこにq.getResultList()以外のメソッドを使用するようアドバイスするつもりでした。 – Gimby
@Gimby申し訳ありませんが、あなたが正しいです。 'List getList = q.getResultList();そうでなければなりません。顧客顧客= getList.get(0); ' –
px06