org.postgresql.util.PGobject 无法转换为 org.postgresql.util.PGobject

org.postgresql.util.PGobject cannot be cast to org.postgresql.util.PGobject

我从下面得到上述错误(println() 调用显示 resultObj 确实是 PGobject):

public List<Search> findSearchesBySearchString(String searchString) throws ClassNotFoundException{
    List<Search> searchResults = new ArrayList<>();
    String queryString = "SELECT s FROM Search s WHERE '"+ searchString +"' = ANY(s.searchstrings)";
    Query query = em.createNativeQuery(queryString);
    List<Object> objectResultsList = query.getResultList();
    for(Object resultObj: objectResultsList){
        System.out.println("***********************************************************"+ resultObj.getClass());
        PGobject resultObject = (PGobject)resultObj; // ClassCastException thrown here
        Search search = new Search();

谢谢

只有当您的类路径中有多个版本的 Postgresql JDBC 驱动程序时,才会真正发生这种情况。也许一个在您的 webapp 中,另一个在 servlet 容器本身中。确保只有一个这样的 jar 文件。