Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OneToOne和OneToMany关系实体未在spring引导单元测试中加载_Java_Spring_Spring Boot_Hibernate_Jhipster - Fatal编程技术网

Java OneToOne和OneToMany关系实体未在spring引导单元测试中加载

Java OneToOne和OneToMany关系实体未在spring引导单元测试中加载,java,spring,spring-boot,hibernate,jhipster,Java,Spring,Spring Boot,Hibernate,Jhipster,我有一个SpringBoot项目,它是使用jhipster生成的。由于某些原因,在运行单元/集成测试时,hibernate没有加载@OneToOne和@OneToMany注释字段。无论何时调用带注释的字段getter方法,它都会为@OneToOne返回null,为@OneToMany返回空列表/集 该测试被配置为使用JUnit进行单元测试,使用Spring测试上下文框架进行集成测试,使用内存H2进行数据库测试。下面显示了测试数据库和实体定义的配置 测试配置: application.yml 尤

我有一个SpringBoot项目,它是使用jhipster生成的。由于某些原因,在运行单元/集成测试时,hibernate没有加载
@OneToOne
@OneToMany
注释字段。无论何时调用带注释的字段getter方法,它都会为
@OneToOne
返回null,为
@OneToMany
返回空列表/集

该测试被配置为使用JUnit进行单元测试,使用Spring测试上下文框架进行集成测试,使用内存H2进行数据库测试。下面显示了测试数据库和实体定义的配置

测试配置:

application.yml


尤里卡:
客户:
已启用:false
实例:
appname:${appname}
instanceId:${INSTANCE_ID}
春天:
简介:
活动:测试
应用程序:
姓名:TestApp
隐藏物:
类型:简单
数据源:
类型:com.zaxxer.hikari.HikariDataSource
url:jdbc:h2:mem:testapp;DB_CLOSE_DELAY=-1;DB\u关闭\u打开\u退出=错误
姓名:
用户名:
密码:
希卡里:
自动提交:false
jpa:
数据库平台:io.github.jhipster.domain.util.FixedH2
数据库:H2
在视图中打开:false
显示sql:false
冬眠:
ddl自动:无
命名:
物理策略:org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
隐式策略:org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
特性:
hibernate.id.new_生成器_映射:true
hibernate.connection.provider\u禁用自动提交:true
hibernate.cache.use_第二级_缓存:false
hibernate.cache.use\u query\u cache:false
hibernate.generate_statistics:true
hibernate.hbm2ddl.auto:验证
hibernate.jdbc.time\u区域:UTC
液化:
上下文:测试
邮寄:
主机:本地主机
信息:
基本名称:i18n/messages
mvc:
法维康:
已启用:false
百里香:
模式:HTML
服务器:
港口:10344
地址:本地主机
我定义了以下实体

@实体
@表(name=“db\u用户”)
@缓存(用法=缓存并发策略。非严格读写)
类用户实现可序列化{
@OneTONE(mappedBy=“user”,fetch=LAZY,cascade=CascadeType.REMOVE)
@杰索尼奥雷
私人雇员;
...
}
@实体
@表(name=“employee”)
@缓存(用法=缓存并发策略。非严格读写)
公共类Employee实现了可序列化{
@OneToOne@JoinColumn(unique=true)
私人用户;
@manytone(fetch=FetchType.LAZY)
私营公司;
...
}
@实体
@表(name=“公司”)
@缓存(用法=缓存并发策略。非严格读写)
公共类公司实现可序列化{
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy=“shareFileItem”)
私人雇员;
...
}
当在dev或prod环境中运行应用程序时,这可以正常工作

@服务
@交易的
类示例服务{
公共void testMethod(){
//获取公司员工的列表
Company Company=companyReposity.findById(…);
company.getEmployees();//这将在dev/prod中正确返回员工列表
//但是测试中的一个空集。
//正在从用户实体获取employee对象。
User=userRepository.findById(…);
user.getEmployee();//在prod/dev中返回employee对象,但在test中返回null
}
}
我尝试在测试配置中镜像我的prod/dev配置文件,反之亦然,结果是一样的。我相信我在我的配置中遗漏了一些东西,但我不是这个样子

注意:DEV数据库是H2磁盘,PROD数据库是MYSQL