hibernate - 在 MappedSuperClass 中自动装配存储库
问题描述
我无法在@Autowire
里面的存储库@MappedSuperClass
@MappedSuperClass
public class HomeAddressType {
private AddressTypeRespository addressTypeRepository;
@Embedded
protected AddressTypeId addressTypeId;
@Autowired
AddressTypeRespository(AddressTypeRespository addressTypeRespository) {
this.addressTypeRepository=addressTypeRepository;
this.addressTypeId = new AddressTypeId(this.addressTypeRepository.getAddressTypeByCode().getId);
}
}
这样我就可以将它隐藏在我的域模型对象中HomeAddress
,因为我使用的是休眠注释并且HomeAddress
实际上是一个Address
与表AddressTypeId(FK)
AddressType
所以当我的Aggregate Factory
构建HomeAddress
它AddressType
默认隐藏。所以我可以对域模型消费者隐藏它。
class HomeAddress extends HomeAddressType{
@Embedded
AddressId addressId;
......
}
我怎样才能做到这一点?
解决方案
您不能在 a 中自动装配 bean,MappedSuperClass
因为它不是由 spring 管理的。
我可以建议的一种解决方法是AddressTypeRespository
在您在启动时初始化的一个托管 bean 中有一个类型为静态字段(例如在构造函数中),然后您可以从您的HomeAddressType
推荐阅读
- excel - 在 VBA Excel 中按 Enter 后,将注意力集中在文本框上
- loops - VueJS:v-for 中的表单 - 如何获取正确的数据?
- r - 可能的 ggplot2 错误:重叠直方图的标准化不一致
- docker - Docker 尝试 mkdir 我挂载的文件夹
- java - 将java缓冲区设置为从写入位置读取 - 偏移量
- go - 如何将切片与字符串进行比较?
- python - Web Scraping循环结构问题
- java - 将 libgdx 项目导出为 HTML - 您是否忘记继承所需的模块?
- sql-server - 如何在两个 docker 容器(mssql 和 .net 核心应用程序)之间进行通信,连接被拒绝 127.0.0.1:1433
- postgresql - Postgresql - 随着时间的推移聚合指标没有时间戳?