slyak / spring-data-jpa-extra

spring data jpa with template dynamic query (eg: freemarker,velocity etc.) like mybatis. The master branch already support springboot2+ spring5+
Apache License 2.0
400 stars 116 forks source link

不支持spring-boot-2.1+,而且在spring-boot-2.0+的时候无法FreemarkerSqlTemplates实例Bean #42

Open Abigale-ztg opened 5 years ago

Abigale-ztg commented 5 years ago

测试过spring boot 2.1.+以上的版本皆无法运行.启动时就会报错类似countContent不是Sample的属性等. 而且发现FreemarkerSqlTemplates无法自动注入,不知道除了readme描述之外的配置,是否还缺少内容.例如需要自己去@Bean实例化某些配置类.

另外想问下,是否有支持2.1+的计划.

谢谢

bashuyi commented 5 years ago

spring-data-jpa-extra 2.1.2.RELEASE,FreemarkerSqlTemplates同样无法自动注入

stormning commented 5 years ago

3.0.0.RELEASE 支持spring5 spring-boot2

Abigale-ztg commented 5 years ago

3.0.0.RELEASE 支持spring4 spring-boot2

确实是支持spring-boot2.0.x 但是不支持spring-boot-2.1.x

我稍微看了下,应该只是支持spring5.0.x 不支持spring5.1.x

bashuyi commented 5 years ago

我使用Spring Boot 2.X.X 和 spring-data-jpa-extra 3.0.0.RELEASE 运行没没问题。但是现在用我使用Spring Boot 1.5.10和spring-data-jpa-extra 2.1.2.RELEASE,FreemarkerSqlTemplates同样无法自动注入,请问有可能是什么原因,@EnableJpaRepositories(basePackages = "com.qbc", repositoryBaseClass = GenericJpaRepositoryImpl.class, repositoryFactoryBeanClass = GenericJpaRepositoryFactoryBean.class)的配置我加了

Abigale-ztg commented 5 years ago

我使用Spring Boot 2.X.X 和 spring-data-jpa-extra 3.0.0.RELEASE 运行没没问题。但是现在用我使用Spring Boot 1.5.10和spring-data-jpa-extra 2.1.2.RELEASE,FreemarkerSqlTemplates同样无法自动注入,请问有可能是什么原因,@EnableJpaRepositories(basePackages = "com.qbc", repositoryBaseClass = GenericJpaRepositoryImpl.class, repositoryFactoryBeanClass = GenericJpaRepositoryFactoryBean.class)的配置我加了

你用的是springboot2.0.x还是2.1.x,我用spring-data-jpa-extra 3.0.0.RELEASE需要自己手动@Bean装配FreemarkerSqlTemplates对象,不知道你的情况如何

bashuyi commented 5 years ago

我用的springboot 2.0.7.RELEASE 和 3.0.0.RELEASE时不需要手动装配FreemarkerSqlTemplates的Bean,现在用springboot 1.5.10,需要装配FreemarkerSqlTemplates,但是无法找到sftl模板的方法,请问你是怎么解决的。

Abigale-ztg commented 5 years ago

我用的springboot 2.0.7.RELEASE 和 3.0.0.RELEASE时不需要手动装配FreemarkerSqlTemplates的Bean,现在用springboot 1.5.10,需要装配FreemarkerSqlTemplates,但是无法找到sftl模板的方法,请问你是怎么解决的。

@Bean public FreemarkerSqlTemplates freemarkerSqlTemplates() { FreemarkerSqlTemplates templates = new FreemarkerSqlTemplates(); templates.setSuffix(".sftl"); return templates; }

bashuyi commented 5 years ago

非常感谢,成功解决了。我看了作者的spring-boot-starter-jpa-extra项目也是用的和你相同的方式。现在我直接用的spring-boot-starter-jpa-extra项目。不需要自己写FreemarkerSqlTemplates的Bean。

spongeboblz commented 5 years ago

@bashuyi 请问一下,我springboot是2.1.1的版本,一样是用的spring-boot-starter-jpa-extra(2.1.2)项目,报了一个No property mgetOneByOne found for type AppTest。这是哪里版本错误么,为什么GenericJpaRepository的方法要映到数据库访问对象上?

stormning commented 5 years ago

@EnableJpaRepositories(basePackages = "xxxxxx", repositoryBaseClass = GenericJpaRepositoryImpl.class, repositoryFactoryBeanClass = GenericJpaRepositoryFactoryBean.class) emmm... 我会考虑把这个也整合到starter里,把配置放到properties里

Abigale-ztg commented 5 years ago

@bashuyi 请问一下,我springboot是2.1.1的版本,一样是用的spring-boot-starter-jpa-extra(2.1.2)项目,报了一个No property mgetOneByOne found for type AppTest。这是哪里版本错误么,为什么GenericJpaRepository的方法要映到数据库访问对象上?

3.0.0版本可以支持spring boot 2.0.x,但是不能支持spring boot 2.1.x,跟你的代码没关系

spongeboblz commented 5 years ago

知道了,感谢回答~