Hibernate: @ManyToOne, исключая одну строку - PullRequest
0 голосов
/ 10 января 2019

Я очень новичок в спящем режиме, поэтому не знаю, что искать. Я нашел несколько примеров, которые используют @Where со статическими запросами, но я даже не мог выразить это правильно.

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

@Entity
public class A {
    @Id
    private int id;
    @ManyToOne
    @JoinColumn(name="b_id")
    private B b;
    private String x;
    private double y;
    // getters and setters are omitted
}

@Entity
public class B {
    @Id
    private int id;
    private String name;
    @oneToOne
    private A mainA;
    @OneToMany(mappedBy="b", cascade=CascadeType.ALL)
    private List<A> optionalAs = new ArrayList<>();
}

В нынешнем виде optionalAs включает в себя все A s, связанные с B. Я хочу, чтобы список optionalAs исключал mainA, желательно без явного удаления его из списка.

Есть ли способ выразить это аннотациями?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...