Ebean setIncludeSoftDeletes () выбросить SQLException - PullRequest
0 голосов
/ 28 августа 2018

У меня есть две таблицы с @History и @SoftDelet каждая. Когда я работаю с не удаленными данными, это нормально. Но когда я пытаюсь найти удаленные данные для модели, которая содержит поле с опцией загрузки EAGER, используя setIncludeSoftDeletes ():

t2.find.query().setId(id).setIncludeSoftDeletes().findOne();

Я получил исключение:

Запрос сгенерирован. SQLException: значение для параметра 2 не указано. Значения привязки: [1,] Запрос был: выберите t0.id, t0.deleted, t1.id из t2 t0, оставьте соединение t1_with_history t1 на t1.t2_id = t0.id и (t1.sys_period_start <=? и (t1.sys_period_end равен нулю или t1.sys_period_end>?)) где t0.id =?

почему было добавлено объединение с представлением t1_with_history?

Модель

@Entity
@Table(name = "t1")
@History
public class t1 extends Model {
    public static final Finder<String, t1> find = new Finder<>(t1.class);
    @Id
    public Long id;
    @SoftDelete
    public Boolean deleted;
    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "t2_id")
    private t2 _t2;
    @JsonIgnore
    public t2 get_t2(){
        return this._t2;
    }
}

@Entity
@Table(name = "t2")
@History
public class t2 extends Model {
    public static final Finder<String, t2> find = new Finder<>(t2.class);
    @Id
    public Long id;
    @SoftDelete
    public Boolean deleted;
    @OneToOne(mappedBy = "_t2", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    public t1 _t1;
}
...