почему @Formula всегда возвращает true, когда запрашивает логическое значение из содержащей сущности? - PullRequest
2 голосов
/ 09 мая 2019

У меня есть следующий объект JPA под названием Offer, который должен получить свое состояние published из его содержимого ServiceItem, которое также имеет атрибут published (не формула).ServiceItem published - это BIT в таблице базы данных.

@Entity
@Getter
@Setter
@NoArgsConstructor
public class Offer {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    @ManyToOne
    private ServiceItem serviceItem;

    @Formula("(select si.published from service_item si join offer o on si.id = o.service_item_id where o.id = id)")
    private boolean published;

}

Приведенная выше формула всегда возвращает true для Offer независимо от состояния published ServiceItem

Это работает правильно, если я изменю формулу следующим образом:

@Formula("(select case when si.published = true then true else false end from service_item si join offer o on si.id = o.service_item_id where o.id = id)")

что не так?Это ошибка или ожидаемое поведение @Formula s с логическими значениями?

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