相关疑难解决方法(0)

将Java Stream过滤为1并且只有1个元素

我正在尝试使用Java 8 Stream来查找a中的元素LinkedList.但是,我想保证过滤条件只有一个匹配.

拿这个代码:

public static void main(String[] args) {

    LinkedList<User> users = new LinkedList<>();
    users.add(new User(1, "User1"));
    users.add(new User(2, "User2"));
    users.add(new User(3, "User3"));

    User match = users.stream().filter((user) -> user.getId() == 1).findAny().get();
    System.out.println(match.toString());
}
Run Code Online (Sandbox Code Playgroud)
static class User {

    @Override
    public String toString() {
        return id + " - " + username;
    }

    int id;
    String username;

    public User() {
    }

    public User(int id, String username) {
        this.id = id;
        this.username = username;
    }

    public void setUsername(String username) …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

202
推荐指数
13
解决办法
16万
查看次数

javax.persistence.NoResultException:找不到查询的实体

在我发布这个问题之前,我已经看过这个了,但是我无法得到我想要的东西.

我知道,对于我写的查询,可能只存在一行或根本没有.所以,没有理由让我使用getResultList().

这是我的代码:

String hql="from DrawUnusedBalance where unusedBalanceDate= :today";
Query query=em.createQuery(hql);
query.setParameter("today",new LocalDate());

DrawUnusedBalance drawUnusedBalance= 
    (DrawUnusedBalance)query.getSingleResult();// we can have only a
                                               // single datum per day
//`System.out.println(drawUnusedBalance.toString());`
Run Code Online (Sandbox Code Playgroud)

问题是,如果没有行,它会抛出异常,如果没有,它就可以正常工作.我知道这个问题,但我也在寻找最好的解决方案.

我想要的是,如果DB中没有行我想获得一个空对象(而不是获得异常)所以我将插入一个新数据,如果它不是null,我只想更新它.

有一种方法可以解决这个问题,我认为这不是正确的方法.它是:我将有一个try-catch块,如果它抛出异常,我可以写入将新数据插入到catch块上的DB中.但我相信会有更好的方法.

java null hibernate jpa exception-handling

49
推荐指数
3
解决办法
9万
查看次数

为什么在JPA EntityManager查询中抛出NoResultException但却找不到?

有人可以告诉我JPA 1.0 EntityManager在通过find检索对象时的内在原因,如果找不到则必须处理null,但是当通过createQuery使用Query接口时getResultList会在找不到时抛出NoResultException.

也许我错过了一些东西,但我觉得它与语言非常不一致,实际上我不得不做很多的重新设计,因为使用查询界面从简单的查找器更改为更细粒度的查询.

多谢你们.

jpa entitymanager

16
推荐指数
2
解决办法
2万
查看次数

更好的是:getSingleResult或getResultList JPA

我需要从表中检索单行,我感兴趣的是哪种方法更好.一方面getSingleResult是为了检索单个结果而设计的,但它会引发异常.请问这种方法在性能与效益getResultList

query.setFirstResult(0);
query.setMaxResults(1); 
Run Code Online (Sandbox Code Playgroud)

jpa

11
推荐指数
2
解决办法
2万
查看次数