mapstruct не устанавливает отношения должным образом на двунаправленной OneToMany - PullRequest
0 голосов
/ 25 июня 2019

У меня двунаправленная ассоциация JPA. В моем коде я установил отношения с обеих сторон. Но сгенерированный код mapstruct, похоже, не устанавливает отношения должным образом. Я имею в виду, что он сидит на одной стороне.

Я вставил часть своего кода. Строка, которую я прокомментировал, добавлена ​​мной вручную. Это должно было быть сгенерировано mapstruct

    derivativeFuture.setDerivativeExecutions( derivativeExecutionDTOSetToDerivativeExecutionSet( derivativeDTO.getDerivativeExecutions() ) );
    //derivativeFuture.getDerivativeExecutions().forEach(derivativeExecution -> { derivativeExecution.setDerivative(derivativeFuture); });


protected Set<DerivativeExecution> derivativeExecutionDTOSetToDerivativeExecutionSet(Set<DerivativeExecutionDTO> set) {
    if ( set == null ) {
        return null;
    }

    Set<DerivativeExecution> set1 = new HashSet<DerivativeExecution>( Math.max( (int) ( set.size() / .75f ) + 1, 16 ) );
    for ( DerivativeExecutionDTO derivativeExecutionDTO : set ) {
        set1.add( derivativeExecutionDTOToDerivativeExecution( derivativeExecutionDTO ) );
    }

    return set1;
}


protected DerivativeExecution derivativeExecutionDTOToDerivativeExecution(DerivativeExecutionDTO derivativeExecutionDTO) {
    if ( derivativeExecutionDTO == null ) {
        return null;
    }

    DerivativeExecution derivativeExecution = new DerivativeExecution();

    derivativeExecution.setPhysicalQuantity( derivativeExecutionDTO.getPhysicalQuantity() );
    derivativeExecution.setExchangeQuantity( derivativeExecutionDTO.getExchangeQuantity() );
    derivativeExecution.setPurchaseSaleIndicator( derivativeExecutionDTO.getPurchaseSaleIndicator() );
    derivativeExecution.setQuotePricingStartDate( derivativeExecutionDTO.getQuotePricingStartDate() );
    derivativeExecution.setQuotePricingEndDate( derivativeExecutionDTO.getQuotePricingEndDate() );
    derivativeExecution.setContractExecutionId( derivativeExecutionDTO.getContractExecutionId() );

    return derivativeExecution;
}

1 Ответ

1 голос
/ 26 июня 2019
...