Автоматическое подключение хранилища внутри MappedSuperClass - PullRequest
0 голосов
/ 17 мая 2019

Я не могу @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;
      ......
}

Как этого добиться?

1 Ответ

1 голос
/ 17 мая 2019

Вы не можете автоматически связывать фасоль в MappedSuperClass, так как она не управляется весной.

Один из способов, который я могу предложить, - это иметь статическое поле типа AddressTypeRespository в одном из ваших управляемых bean-компонентов, которое вы инициализируете при запуске (например, в конструкторе), затем вы можете получить доступ к этому полю из вашего HomeAddressType

...