在我开始添加更多存储库之前,我的代码只使用一个存储库包就可以正常工作
主数据源配置类:
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = {"com.example.resource.akademiks.waec.obj.dao",
"com.example.resource.akademiks.waec.theory.dao", "com.example.resource.akademiks.waec.theory.answer.dao"},
entityManagerFactoryRef = "akademiksEntityManagerFactory",
transactionManagerRef = "akademiksTransactionManager")
public class AkademiksDbConfig {
@Bean
@Primary
@ConfigurationProperties("spring.datasource.waecakademiks")
public DataSourceProperties akademiksDataSourceProperties() {
return new DataSourceProperties();
}
@Primary
@Bean
@ConfigurationProperties("spring.datasource.waecakademiks")
public DataSource akademiksDataSource() {
return akademiksDataSourceProperties().initializeDataSourceBuilder()
.type(HikariDataSource.class).build();
}
@Primary
@Bean(name = "akademiksEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean
akademiksEntityManagerFactory(EntityManagerFactoryBuilder builder) {
return builder
.dataSource(akademiksDataSource())
.packages("com.example.resource.akademiks.waec.obj.entity")
.packages("com.example.resource.akademiks.waec.theory.questions.entity")
.packages("com.example.resource.akademiks.waec.theory.answer.entity")
.build();
}
@Primary
@Bean
public PlatformTransactionManager akademiksTransactionManager(
@Qualifier("akademiksEntityManagerFactory")
LocalContainerEntityManagerFactoryBean akademiksEntityManagerFactory
) {
return new JpaTransactionManager(akademiksEntityManagerFactory.getObject());
}
}
存储库:
package com.example.resource.akademiks.waec.obj.dao;
@Repository
@RepositoryRestResource(collectionResourceRel = "chemistry", path = "chemistry")
public interface WaecChemistryObjRepo extends JpaRepository<WaecChemistryObj, Integer> {
服务层:
package com.example.resource.akademiks.waec.theory.chemistry.service;
public interface WaecChemistryTheoryService {}
服务实施:
@Service
public class WaecChemistryObjServiceImpl implements WaecChemistryObjService {
@Autowired
private WaecChemistryObjOptionRepo chemistryOptionRepo;
实体类:
package com.example.resource.akademiks.waec.obj.entity;
@Entity
@Table(name = "WaecChemistryObjAnswer")
public class WaecChemistryObjAnswer {
其他实体和存储库已被排除在外。
packages
方法采用varargs参数:
EntityManagerFactoryBuilder.Builder packages(String... packagesToScan)
您可以调用它3次,而不是在一次调用中传递3个包。
更一般地说:利用自动配置并遵循约定而不是配置方法,如注释中所建议的。
这是我的申请 数据源:类型:com.zaxxer.hikari.HikariDataSource主要: 这是我的入门: 这是我的例外: 2017-11-21 10:10:33.126线程“main”中的表现:java.lang.运行时异常: java.lang.ClassCastException: 无法将 com.mysql.cj.jdbc.Driver to javax.sql.DataSou
下面是我的代码。当我运行它时,我在线程“main”java.lang.IndexOutOfBoundsException:Index:3、Size:2中得到异常,而不是我的异常消息。谁能解释一下我做错了什么,为什么会这样?谢谢!
编译器知道检查的异常不能在安全方法内抛出-所以也许它应该允许只捕获未检查的异常? 回到主要问题--有没有理由以这种方式实现捕获检查异常?这仅仅是设计中的一个缺陷还是我遗漏了一些重要的因素--也许是向后的不兼容性?在此场景中,如果只允许捕获,可能会出现什么问题?实例非常感谢。
我试图将两个“Employee”对象添加到树集中: 但它引发了一个ClassCastException: 但是如果我只向TreeSet添加一个对象: 或者如果我使用哈希集: 那么它就是成功的。为什么会发生异常,如何修复它?
我想了解为什么一段代码不会抛出NullPointerException。 请考虑以下代码: 方法被重复调用,同时以下代码在单独的线程中运行: 只有一个实例。 从不引发NullPointerException。 但是,当方法暂停时,即使暂停0毫秒,也会按预期引发NullPointerException: 我的理解是,在理论上,在检查和调用之间存在竞争条件。在实践中,如果不引入暂停(即从后续方法调用中
本文向大家介绍.NET中托管和非托管代码之间的区别,包括了.NET中托管和非托管代码之间的区别的使用技巧和注意事项,需要的朋友参考一下 .NET Framework具有CLR(公共语言运行时),可以执行用.NET语言编写的代码。CLR管理内存需求,安全性,代码优化,特定于平台的转换等。在非托管代码的情况下,不存在CLR,并且代码由操作系统直接执行。 以下是托管代码和非托管代码之间的一些重要区别。