@OneToOne отношения без какого-либо внешнего ключа - PullRequest
0 голосов
/ 21 октября 2019

У меня есть две сущности A и B, которые не имеют концепции внешнего ключа. я хочу получить данные из обеих таблиц на основе составного из 3 столбцов. но выбрасывание некоторых ошибок не может быть преобразовано в сериализуемый для запроса выбора jpa.

объект A:

public class A{
@Column(name = "loan_id")
    private Long loanId;

    @Enumerated(EnumType.STRING)
    @Column(name = "event_type")
    private EventType eventType;

    @Column(name = "event_id")
    private Long eventId;

@OneToMany(fetch = FetchType.EAGER, mappedBy = "a", cascade = CascadeType.ALL)
    private Set<B> b;
.......
}

Entity B:
public class B{

 @Column(name = "loan_id")
    private Long loanId;

    @Enumerated(EnumType.STRING)
    @Column(name = "event_type")
    private EventType eventType;

    @Column(name = "event_id")
    private Long eventId;

 @ManyToOne(fetch = FetchType.EAGER, optional = false)
    @JoinColumns({
            @JoinColumn(name = "event_type",referencedColumnName = "event_type",insertable = false,updatable = false),
            @JoinColumn(name = "event_id",referencedColumnName = "event_id",insertable = false,updatable = false),
            @JoinColumn(name = "loan_id",referencedColumnName = "loan_id",insertable = false,updatable = false)
    })
    private A a;

.....
}  

JPAquery: creationOn и lastModifiedOn - это еще один столбец в сущности

@ Query ("ВЫБЕРИТЕ ИЗ А ГДЕ a.createdOn> =: inputValue или a.lastModifiedOn> =: inputValue order by id") Страница getModifiedLoanTransactionFromDB1 (@Param ("inputValue") LocalDateTime inputValue, Pageable pageRequest);

...