首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的Lambda -无法分析lambda代码

Java中的Lambda -无法分析lambda代码
EN

Stack Overflow用户
提问于 2015-07-10 06:05:24
回答 1查看 612关注 0票数 9

我有一个与Hibernate (JPA)结合使用的应用程序。我有一个表,其中列出了实体,我希望用户能够过滤它。表中列有所列人员。

代码语言:javascript
复制
@Entity
public class Person {
    private String firstName;
    private String surName;
    @Id
    private int id;
    public Person() {
    }
    public Person(final String pFirstName, final String pSurName, final int pID) {
        firstName = pFirstName;
        surName = pSurName;
        id = pID;
    }
    public int getId() {
        return id;
    }
    public void setId(final int pID) {
        id = pID;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(final String pFirstName) {
        return firstName = pFirstName;
    }
    public String getSurName() {
        return surName;
    }
    public void setSurName(final String pSurName) {
        surName = pSurName;
    }
}

我正在为此使用JavaFX,但这不重要。第一件事我试着用他们的姓过滤这些人。为了过滤,我结合使用了Jinq和lambda。我的过滤代码如下所示:

代码语言:javascript
复制
private List<Person> getFilteredPersons(final String pSurName){
    JPAJinqStream<Person> stream = streamProvider.streamAll(Person.class);
    stream.where(person -> person.getSurName().contains(pSurName));
    List<Person> filteredList = stream.toList();
    stream.close();
    return filteredList;
}

所以我所操作的对象是一个普通的字符串。我不认为我的个人课与此有任何关系。我的第一个想法是,您不能在lambda中使用boolean contains(...)方法,因为当错误出现时,它说:

代码语言:javascript
复制
Caused by: java.lang.IllegalArgumentException: Could not analyze lambda code

所以,我的问题是,在lambdacode中,是否可以使用字符串的包含方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-10 06:28:13

您的问题与JPA或lambda无关,但与jinq有关:它根本不支持将String.contains()转换为数据库查询。有关支持的内容,请参阅http://www.jinq.org/docs/queries.html#N65890

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31333555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档