Java 如何使用hibernate查询从电子邮件列表中筛选邮件域
我有一个emais数据列表,如Java 如何使用hibernate查询从电子邮件列表中筛选邮件域,java,mysql,sql,oracle,hibernate,Java,Mysql,Sql,Oracle,Hibernate,我有一个emais数据列表,如abc@gmail.com,abc@yahoo.com,asd@gmail.com,asd@yahoo.com,sdf@gmail.com 现在我想过滤的电子邮件域列表为'gmail',所有的数据应该被过滤,并显示只有名单的gmail id的,而不是其他电子邮件id的 我的代码是: List<String> EmaiList = (List<String>) session.createQuery("select email from Use
abc@gmail.com
,abc@yahoo.com
,asd@gmail.com
,asd@yahoo.com
,sdf@gmail.com
现在我想过滤的电子邮件域列表为'gmail',所有的数据应该被过滤,并显示只有名单的gmail id的,而不是其他电子邮件id的
我的代码是:
List<String> EmaiList = (List<String>) session.createQuery("select email from UserDto where email like :lk and type" +
(isMailStuff ? " in (:mailTypes)" : " not in (:mailTypes)"))
.setString("lk", partEmail + "%")
.setParameterList("mailTypes", UserType.mailTypes)
.list();
List EmaiList=(List)session.createQuery(“从UserDto选择电子邮件,其中电子邮件类似于:lk并键入”+
(isMailStuff?“in(:mailTypes)”:“notin(:mailTypes)”)
.setString(“lk”,partEmail+“%”)
.setParameterList(“mailTypes”,UserType.mailTypes)
.list();
在这段代码中,我将isMailStuff设置为“true”。现在我可以过滤gmail列表,但在某些地方我可以看到其他邮件id,比如yahoo邮件id
你能告诉我这个查询需要做什么修改吗
问候,,
拉维
加
如果将
setString
更改为此
.setString("lk", "%" + partEmail + "%")
如果
partEmail
的值为@gmail
,它将返回包含模式@gmail
的电子邮件列表:-我在hibernate上非常差..我可以知道在哪里添加此代码吗?如果我将partEmail输入为“a”,它应该显示包含字母“a”的邮件id(gmail)列表。在这种情况下,上述设置管柱不起作用。关于它,你能有其他的想法吗。上面的设置字符串不起作用了
?它将返回所有包含a
的电子邮件。。是吗?是的,Debojit,它返回的所有电子邮件列表都有“a”,这意味着它按预期工作。您定义了一个模式,它返回的电子邮件中包含该模式。这就是你想要的。。对吗?没有Debojit,我的要求是如果我输入“a”,所有的电子邮件(只有gmail)都应该显示出来。但如果其他电子邮件也包含像雅虎电子邮件id一样的“a”,则不应显示。我不能按gmail.com或yahoo.com这样的域名搜索,只能按abc、asd等域名前的名称搜索。
.setString("lk", "%" + partEmail + "%")