[Ljava.lang.Object;невозможно привести к com.lglsys.entity.EntityName - PullRequest
0 голосов
/ 25 сентября 2019

Я пытался получить конкретные данные из базы данных, но каждый раз я получаю следующую ошибку!

java.lang.ClassCastException: [Ljava.lang.Object;не может быть приведен к com.lglsys.entity.TDasProductDownload

Так что это мой класс QueryService

@Dependent
public class QueryService {
     List<TDasProductDownload> downloadLink = new ArrayList();
     final private Logger logger =
LogManager.getLogger(QueryService.class.getName());
    @PersistenceContext(unitName="DownloadServices")
    EntityManager em;

    public QueryService() { super(); }

public List<TDasProductDownload> findAllDownloadLinks() {
        try {
    downloadLink= 
    em.createQuery(queryForDownloadLinks,TDasProductDownload.class)
    .getResultList();
            return downloadLink;
        } catch (Exception e) {
            logger.info(e.toString());
            return null;
        }
    }   
}


Программа выдает ошибку в этом классе/ EndPoint class

public class PreControlWSEndPoint {

    private Session session;
    final private Logger logger = LogManager.getLogger(PreControlWSEndPoint.class.getName());
    List<TDasProductDownload> downloadLink = new ArrayList();

    @PersistenceContext(unitName="DownloadServices")
    EntityManager em;

    @Inject
    QueryService service;

    @OnOpen
    public void Open(Session session) throws IOException, InterruptedException {
        this.session = session;
        this.sendMessage("Connection Oppened");
        logger.info("EndPoint Opened");

        try {
              downloadLink  =  service.findAllDownloadLinks();  
              logger.info(downloadLink.size());
              TDasProductDownload str = downloadLink.get(0);
              logger.info(str.getDownloadStatus()); //**Eror line!!**
        } catch (Exception e) {
            logger.info(e.toString() + " .D");
        }

    }
    @OnMessage
    public void onMessage(String message) {}
    @OnClose
    public void Close() {}
}

Я не вижу, что происходит в моем коде.

1 Ответ

0 голосов
/ 25 сентября 2019

Я исправил это!

public List<String> findAllDownloadLinks() {
    try {
downloadLink= 
em.createQuery(queryForDownloadLinks,String.class)
.getResultList();
        return downloadLink;
    } catch (Exception e) {
        logger.info(e.toString());
        return null;
    }
} 

, тогда я могу напечатать так

for(int temp=0;temp<=downloadLink.size();temp++){
    logger.info(downloadLink.get(temp));
 }
...