自动装配MappedSuperClass中的存储库

时间:2019-05-17 12:37:30

标签: hibernate spring-boot spring-data-jpa domain-driven-design

我无法@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)到{{1} }表

因此,当我的AddressType构建Aggregate Factory时,默认情况下它具有隐藏的HomeAddress。这样我就可以对域模型使用者隐藏它。

AddressType

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您无法自动为MappedSuperClass中的bean装配导线,因为它不是由spring管理的。

我建议的一种解决方法是在启动时初始化的一个托管bean中有一个AddressTypeRespository类型的静态字段(例如在构造函数中),然后可以从{ {1}}