Hibernate 在MappedSuperClass内自动关联存储库
我无法Hibernate 在MappedSuperClass内自动关联存储库,hibernate,spring-boot,spring-data-jpa,domain-driven-design,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 ad
@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);
}
}
因此,我可以将其隐藏在我的域模型对象homemaddress
中,因为我使用的是hibernate注释,homemaddress
实际上是一个AddressTypeId(FK)
到AddressType
表的地址
因此,当我的聚合工厂
构建家庭地址
时,默认情况下它有一个隐藏的地址类型
。所以我可以对域模型消费者隐藏这一点
class HomeAddress extends HomeAddressType{
@Embedded
AddressId addressId;
......
}
如何实现这一点?您不能在MappedSuperClass
中自动关联bean,因为它不是由spring管理的
我建议的一种解决方法是在启动时初始化的托管bean中(例如在构造函数中)有一个类型为AddressTypeRespository
的静态字段,然后,您可以从您的HomeAddressType
访问此字段。您可以更具体地满足需要吗?您不能自动连线,因为@MappedSuperClass(Jpa实体)不是Spring bean。我不能提出正确的方法,因为我对这个问题完全不清楚。