尝试使此方法在字符串等于 "godkjent" 时返回 true,如果字符串等于 false,则返回 false。这与我的数据库相关联



这个方法应该从我的数据库(Godkjenning)中生成一个列表,如果我在数据库中写了("Godkjent"),我希望它返回true,如果没有,则返回false。

 public boolean GodkjenningT(String godkjentIkkegodkjent) {
    List<Tilbakemelding> tilbakemeldingListe = em.createQuery(
    "SELECT t FROM Tilbakemelding t WHERE t.Godkjenning LIKE :godkjenning" )
    .setParameter("godkjenning", godkjentIkkegodkjent )   
    .setMaxResults(1)
    .getResultList();
    System.out.println("godkjenning" + godkjentIkkegodkjent);
    if(tilbakemeldingListe.equals("Godkjent")){
        return true;
    }
    else {
        return false;
}
}
}

我将编辑如下代码:

public boolean GodkjenningT(String godkjentIkkegodkjent) {
    /*now the query matches cases and the 'LIKE' statement will work correctly
    having the '%' char before and after the string */
    List<Tilbakemelding> tilbakemeldingListe = em.createQuery(
    "SELECT t FROM Tilbakemelding t WHERE UPPER(t.Godkjenning) LIKE UPPER(?)")
    .setString(0, "%"+godkjentIkkegodkjent+"%")
    .getResultList();
    System.out.println("godkjenning" + godkjentIkkegodkjent);
    /*here you have to iterate the list to find if there is the string inside*/
    for(Tilbakemelding element : tilbakemeldingListe){
    /*if you want not to consider the case, you have to use the equalsIgnoreCase statement*/
        if(element.getGodkjenning().equals("Godkjent")){
            return true;
        } else {
            return false;
        }
     }
}

但是,你能发布这个类的实现吗:Tilbakemelding?我假设你的Tilbakemelding实体(那是一个实体吗?:))有一个getGodkjenning()方法来完成我的代码。

最新更新