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

用户3207874

FooBar is not mapped即使我已经放置了所有必要的注释,我也遇到了异常:

模型类中的Entity注解:

模型/FooBar.java*

@Data
@Entity
@Table(name = "ORDERS")
public class FooBar {}

DAO 中的 Repository、PersistenceContext 和 Transactioinal。另外,我通过类名“FooBar”正确地引用了它

db/FooBarDao.java

@Repository
public class OrderDAO {
    @PersistenceContext
    private EntityManager em;

    @Transactional
    public List<FooBar> getFooBars() {
        return em.createQuery(
                "select fb from FooBar fb",
                FooBar.class
        ).getResultList();
    }
}

这是使其全部工作的配置:

配置文件/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();
    }

    private Properties additionalProperties() {
        Properties properties = new Properties();
        properties.setProperty("hibernate.hbm2ddl.auto", "validate");
        properties.setProperty("hibernate.dialect",
                "org.hibernate.dialect.HSQLDialect");
        properties.setProperty("hibernate.show_sql", "true");
        properties.setProperty("hibernate.format_sql", "true");

        return properties;
    }

}
用户3207874

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

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

因此,扫描model

factory.setPackagesToScan("model");

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

factory.setPackagesToScan("project.model");

这解决了问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JPA /休眠映射:“ QuerySyntaxException:播放器未映射……”

来自分类Dev

为什么在JPA中未映射随实体引发的QuerySyntaxException [未从实体]映射?

来自分类Dev

Spring,Spring数据JPA:org.hibernate.hql.internal.ast.QuerySyntaxException:测试未映射

来自分类Dev

Hibernate QuerySyntaxException,表未映射

来自分类Dev

eclipselink jpa条件参考未映射列

来自分类Dev

JPA2.0映射密钥未存储

来自分类Dev

JpaRepository计数查询QuerySyntaxException实体未映射

来自分类Dev

JPA映射的超类

来自分类Dev

JPA中的继承映射

来自分类Dev

JPA OneToOneToOne映射

来自分类Dev

JPA只读映射

来自分类Dev

JPA实体映射

来自分类Dev

JPA:ManyToMany映射异常

来自分类Dev

JPA多对多映射

来自分类Dev

JPA /休眠映射null

来自分类Dev

映射JPA实体

来自分类Dev

JPA 映射错误

来自分类常见问题

org.hibernate.hql.internal.ast.QuerySyntaxException:未映射表

来自分类Dev

org.hibernate.hql.internal.ast.QuerySyntaxException:未映射

来自分类Dev

JPA ManyToMany映射通过澄清

来自分类Dev

如何映射JPA鉴别值?

来自分类Dev

在JPA中映射复杂的地图

来自分类Dev

如何映射JPA这些实体

来自分类Dev

JPA映射@OneToOne自己的类

来自分类Dev

此JPA映射如何工作?

来自分类Dev

对Joda DateTime的JPA映射支持

来自分类Dev

JPA ManyToMany映射通过澄清

来自分类Dev

映射JPA复合外键

来自分类Dev

Java JPA / Hibernate和SQL Server-如何检测实体模型未映射db中的列?