0

I've tried to resolve this error using advise I found from other threads such as annotating the function with @transactional, however this seems to have no effect. I've also tried using Hibernate.initialize(), but I then receive the error, "collection is not associated with any session".

I'm not the best with Java so I'd really appreciate explanations which are easily followable.

@Component
public class ItemEdmEntityConverter implements EdmEntityConverter<Item> {
    private final ItemVersionDao itemVersionDao;
    private final PolicyDao policyDao;
    private final ClaimDao claimDao;

    @Autowired
    public ItemEdmEntityConverter(ItemVersionDao itemVersionDao, PolicyDao policyDao, ClaimDao claimDao) {
        this.itemVersionDao = itemVersionDao;
        this.policyDao = policyDao;
        this.claimDao = claimDao;
    }

    @Override
    public Entity toEdmEntity(Item domainEntity) {
        Entity entity = new Entity();
        addPrimitiveEdmProperty(entity, ID, domainEntity.getId());
        addPrimitiveEdmProperty(entity, IS_PROOF_COMPLETED, getIsProofCompleted(domainEntity));
        return entity;
    }

    @Transactional
private boolean getIsProofCompleted(Item domainEntity) {
    Hibernate.initialize(domainEntity.getEvidence());

    String[] requiredProof = new String[]{
            Evidence.EvidenceType.PROOF_OF_DEVICE.toString(),
            Evidence.EvidenceType.PROOF_OF_PURCHASE.toString()
        };

    Set<Evidence> allEvidence = domainEntity.getEvidence();
    for (Evidence evidence : allEvidence) {
        ArrayUtils.removeElement(requiredProof, evidence.getEvidenceType().toString());
    }
    return requiredProof.length == 0;
}

Config

@Configuration
@EnableTransactionManagement
public class AdaptersConfig {
@Autowired
private RestrictionsParser restrictionsParser;
@Autowired
private SortParser sortParser;

@Bean
public EdmEntityAdapterReader<Long> 
  evidenceEdmEntityAdapterReaderDelegatee(EvidenceDao evidenceDao, RestrictionsParser restrictionsParser, SortParser sortParser, ToEdmEntityConverter<Evidence> evidenceToEdmEntityConverter) {
    return new EdmEntityAdapterReaderImpl<>(Evidence.class, evidenceDao, restrictionsParser, sortParser, evidenceToEdmEntityConverter);
  }
}
user7862512
  • 273
  • 1
  • 9

0 Answers0