我懂了:

Query query = session.createQuery("
    from Osoba
        WHERE (zainteresowania LIKE '%iOS%')
        and (zainteresowania LIKE '%Java%')
        and (zainteresowania LIKE '%Android%')"
    );


效果很好,但是我需要一种方法问我:您要搜索什么?我可以这样说:Android和Ubuntu
这意味着它必须在zainteresowania上的数据库中搜索这两个短语,如果有人拥有它,那么我将其打印出来。

正如我所说的,这是示例如何将其存储在该col中:


爪哇
Platforma .NET(C#)
安卓系统
的iOS
Windows Phone
睾丸阿普利卡奇

最佳答案

您可以使用定位参数或编号参数(如下所述)将参数动态传递给SQL查询:

定位参数

 String input1=// got from user
    String input2=// got from user
    Query query = session.createQuery("from Osoba WHERE (zainteresowania LIKE ?) and (zainteresowania LIKE ?)")
.setString(0,"%"+input1+"%")
.setString(1,"%"+input2+"%")
.list();


命名参数:

String hql = "from Osoba WHERE (zainteresowania LIKE :user_input1) and (zainteresowania LIKE :user_input2)";
List result = session.createQuery(hql)
.setParameter("user_input1", "%Java%")
.setParameter("user_input2","%Android%");
.list();


有关更多信息,请参见here

10-05 18:07