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

JPA 映射:“QuerySyntaxException:FooBar 未映射……”

JPA 映射:“QuerySyntaxException:FooBar 未映射……”

芜湖不芜 2022-01-12 09:59:54
我得到了FooBar is not mapped例外,即使我已经放置了所有必要的注释:模型类中的实体注解:模型/FooBar.java*@Data@Entity@Table(name = "ORDERS")public class FooBar {}DAO 中的 Repository、PersistenceContext 和 Transactioinal。另外,我正确地用类的名称“FooBar”引用了它db/FooBarDao.java@Repositorypublic class OrderDAO {    @PersistenceContext    private EntityManager em;    @Transactional    public List<FooBar> getFooBars() {        return em.createQuery(                "select fb from FooBar fb",                FooBar.class        ).getResultList();    }}这是使其全部正常工作的配置:conf/DbConfig.java@EnableTransactionManagement@Configuration@ComponentScan(basePackages = {"project.db"})public class DbConfig {    @Autowired    public Environment env;    @Bean    public DataSource dataSource() {        System.out.println("Configuring database!!!!!!!!");        DriverManagerDataSource ds = new DriverManagerDataSource();        ds.setDriverClassName("org.hsqldb.jdbcDriver");        ds.setUrl("jdbc:hsqldb:mem:myjdbc");        new JdbcTemplate(ds)                .update(FileUtil.readFile2("./src/main/java/project/db/sql/initialize.sql"));        return ds;    }    @Bean    public PlatformTransactionManager transactionManager(            EntityManagerFactory entityManagerFactory) {        return new JpaTransactionManager(entityManagerFactory);    }    @Bean    public EntityManagerFactory entityManagerFactory() {        LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();        factory.setPersistenceProviderClass(HibernatePersistenceProvider.class);        factory.setPackagesToScan("model");        factory.setDataSource(dataSource());        factory.setJpaProperties(additionalProperties());        factory.afterPropertiesSet();        return factory.getObject();        }}
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

即使我正确设置了注释并正确引用了类,它也没有找到映射。所以问题很可能是扫描模型类。

我的项目结构是/src/main/java/project/...

所以,扫描model

factory.setPackagesToScan("model");

找不到任何豆子。相反,我需要做

factory.setPackagesToScan("project.model");

这解决了这个问题。


查看完整回答
反对 回复 2022-01-12
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

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