为了账号安全,请及时绑定邮箱和手机立即绑定

调用实体管理器时的空指针

调用实体管理器时的空指针

翻过高山走不出你 2021-08-13 16:10:49
我尝试使用 Java、Hibernate 和 Spring 编写一些程序。我在调用 SQL 查询时看到 NullPointerException。我可能尝试了互联网上的所有代码示例,但我不知道该怎么做。我该如何解决?这是我的示例代码。有我的完整程序代码:https : //github.com/lukasz-chojn/films_database/tree/master/src/main/java/Films    @Controller    public class DataFromUserController {        private FilmDaoImpl filmDaoImpl = new FilmDaoImpl();        private DirectorDaoImpl directorDaoImpl = new DirectorDaoImpl();        private Locale locale = Locale.getDefault();        private Scanner sc = new Scanner(System.in).useLocale(locale);        public FilmDs collectData() {            //....            filmDaoImpl.insert(film);            directorDaoImpl.insert(director);            return film;        }        private String collectTitle() {            System.out.print("Podaj tytuł filmu: ");            String tytul = sc.nextLine();            List<String> existingEntry = filmDaoImpl.existingTitle();            if (existingEntry.contains(tytul)) {                System.out.println("Tytuł jest już w bazie. Podaj inny");                return collectTitle();            }                if (tytul.isEmpty()) {                    System.out.println("Tytuł nie może być pusty. Podaj go");                    return collectTitle();                }            return tytul;        }//......    }    @Service    @Transactional    public class FilmDaoImpl implements FilmDAO {        @PersistenceContext        private EntityManager entityManager;        //......        @Override        @SuppressWarnings("unchecked")        public List<String> existingTitle() {            List<String> titleInTheDatabase;    // here is NPE    return titleInTheDatabase = entityManager.createQuery("SELECT film.tytul FROM FilmDs film").getResultList();        }        //....    }
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

您正在自己创建实例,而不是让 spring 为您注入它,这就是为什么您会丢失所有依赖项(如实体管理器等)的原因。更改您的 DataFromUserController


@Controller

public class DataFromUserController {


@Autowired

private FilmDAO filmDao;


@Autowired

private DirectorDAO directorDao;


.....

}


查看完整回答
反对 回复 2021-08-13
  • 1 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信