VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: flypigzj

EJB 中 EJBQL条件查询求救,LIST数组

[复制链接]

2

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-7-29 16:15:01 | 显示全部楼层
public   List findExamScoreinterface(List userid){


      String connselect="select o from TCJExamScore o  where o.userID IN(:userID)";   
      Query query=em.createQuery(connselect);
      query.setParameter("userID",userid);
       return query.getResultList();
}
我这么写有什么错误,怎么过不去?
回复

使用道具 举报

0

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-7-30 17:15:02 | 显示全部楼层
/**
* DB検索
*/
public void findUsers() {               
    Query query;
    String namePattern = null;               
    //入力されたユーザネーム表示
    if (!user.getUserName().equals("")) {
        namePattern = '%' + user.getUserName() + '%';
    }
    //一覧検索
    if (user.getUserCode() == "" && user.getUserName() == "") {                        query = em.createQuery("from User");                       
    }else if(user.getUserCode() != "" && user.getUserName() == "") {               
query = em.createQuery("from User where user_code = :code");
                    query.setParameter("code", user.getUserCode());
                    
                    log.info(">>>ユーザコード検索");       
                }
                else if (user.getUserCode() == "" && user.getUserName() != "") {
                       
                        query = em.createQuery("from User where user_name like :userName");
                        query.setParameter("userName", namePattern);
                    
                    log.info(">>>ユーザ名検索");
                       
                }
                else {

                        query = em.createQuery("from User where user_code = :code and user_name like :userName");
                       
                        query.setParameter("code", user.getUserCode());
                        query.setParameter("userName", namePattern);
                       
                    log.info(">>>ユーザコード・ユーザ名検索");

                }
               
                userList = query.getResultList();
                log.info(">>>show userlist - #0", userList);
               
                if (userList.isEmpty()) {
                        log.info(">>>ユーザリストが空");
                        return;
                }
                for(User u: userList) {
                        log.info(">>>show userList - #0 #1", u.getUserCode(), u.getUserName(), u.getPassword());
                }
               
        }
回复

使用道具 举报

0

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-7-30 17:30:01 | 显示全部楼层
哈,每整理好不小心就给发出来了,前面很多都是对输入的查询条件进行的处理,所以没有啥实际意义,搂主可以自己参考下,其中的log.info这些你直接删除掉就好,我用的是JBOSS-SEAM这个构架做的,呵呵
回复

使用道具 举报

0

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-7-30 20:15:01 | 显示全部楼层
query.setParameter("userID",userid);
这句中,userID对应的应该是一个实体BEAN的一个属性,
实际上对应的也应该是数据库中的一个字段,貌似我们设置
数据库字段类型是没有list这种吧,这个编译时没有错误,
可以实际运行时会出错。
回复

使用道具 举报

0

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-7-31 09:00:01 | 显示全部楼层
我把我那段程序中全检索那步写死了
   ArrayList<String> userCode = new ArrayList<String>();
   userCode.add("H0001");
   userCode.add("H0002");
   query = em.createQuery("from User where user_code IN(:userCode)");
   query.setParameter("userCode", userCode);
   userList = query.getResultList();
好用的,不知道楼主的是哪里的错误,可以在执行前把传过来的userid给和
执行后的结果打印下看看,是否是其他地方出的错误。
回复

使用道具 举报

2

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-8-2 07:45:01 | 显示全部楼层
ArrayList<String> userCode = new ArrayList<String>();
       userCode.add("wanglijuan");
      userCode.add("H0002");
      Query query;
      try{
   query = em.createQuery("select o from Subject o where o.subjectid IN(:subjectid)");
   query.setParameter("subjectid", userCode);
      }
      catch(Exception e){
               throw new EJBException(e);      
      }
   return  query.getResultList()

我按照你的方法,直接写死了也过不去,出现错.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表