Spring 春季JPA+;Hibernate无法使用JPARepository的findAll()获取记录
我使用以下代码创建了配置:Spring 春季JPA+;Hibernate无法使用JPARepository的findAll()获取记录,spring,hibernate,spring-data,spring-data-jpa,jpql,Spring,Hibernate,Spring Data,Spring Data Jpa,Jpql,我使用以下代码创建了配置: @Configuration @EnableTransactionManagement @ComponentScan("Name of package") @EnableJpaRepositories("Name of package") public class Config { private static final String PROPERTY_NAME_HIBERNATE_DIALECT = "hibernate.dialect"; p
@Configuration
@EnableTransactionManagement
@ComponentScan("Name of package")
@EnableJpaRepositories("Name of package")
public class Config {
private static final String PROPERTY_NAME_HIBERNATE_DIALECT = "hibernate.dialect";
private static final String PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN = "Name of package";
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("Driver Name");
dataSource.setUrl("Url");
dataSource.setUsername("UserName");
dataSource.setPassword("Password");
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(dataSource());
entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistenceProvider.class);
entityManagerFactoryBean.setPackagesToScan(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN);
entityManagerFactoryBean.setJpaProperties(hibProperties());
entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
return entityManagerFactoryBean;
}
private Properties hibProperties() {
Properties properties = new Properties();
properties.put(PROPERTY_NAME_HIBERNATE_DIALECT, "org.hibernate.dialect.DB2Dialect");
properties.put("hibernate.default_schema","Schema Name");
return properties;
}
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory emf){
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation(){
return new PersistenceExceptionTranslationPostProcessor();
}
}
有一个实现JPARepository的自定义存储库接口。
我已经在controller中自动连接了自定义存储库,并尝试调用findAll()。但是该方法返回0,尽管DB中有3条记录。
我正在使用SpringWeb进行rest服务调用
实体类是用@Entity和@Table注释创建的。它有一个嵌入式键,该键使用@EmbeddedId注释进行注释
@Repository
public interface EntityRepository extends JpaRepository<EntityTable, Long> {
@SuppressWarnings("unchecked") EntityTable save(EntityTable entityTable);
}
@存储库
公共接口EntityRepository扩展了JpaRepository{
@SuppressWarnings(“未选中”)EntityTable保存(EntityTable EntityTable);
}
Entity table是使用db table映射的我的表的名称。发布存储库接口代码。@repository public interface EntityRepository扩展了JpaRepository{@SuppressWarnings(“未选中”)EntityTable save(EntityTable EntityTable);}Entity table是使用db table映射的我的类的名称。不确定代码有什么问题。如果您能够无错误地调用findAll(),那么配置没有问题,但我仍然想确定。我没有收到任何错误。db凭据也正确。是否有其他可能影响检索的原因?@SpringUser如果您的
EntityTable
类正在使用@EmbeddedId
,那么您的EntityRepository
应该使用extensedjparepository
而不是extensedjparepository
。你能做出改变并进行测试吗。您还可以发布您的控制器课程吗?