Как определить класс сущности JPA для загрузки по запросу (не все записи в таблице)

у меня есть

@MappedSuperclass
public class AbstractFoo implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    ...

и у меня есть объект, наследующий / расширяющий его:

@Entity
@Table(name = "Foo")
public class FooSomething extends AbstractFoo {
    private static final long serialVersionUID = 1L;

    @ManyToOne
    @JoinColumn(name = "fk_something")
    private Something something;
    ...

fk_something может иметь значение null.

Как определить класс сущности, который должен знать, что он должен получать только Foos, где fk_something не равно нулю?

Я ищу что-то вроде этого:

@Entity
@Table(name = "Foo")
@Query(SELECT *[fields of AbstractFoo + FooSomething] from <schema>.foo where fk_something is not null)
public class FooSomething extends AbstractFoo {
    ...

При написании этого вопроса я подумал о простом подходе, чтобы просто определять каждый раз, когда я получаю Foos через FooSomethingRepository, чтобы просто указать в запросе, что «что-то» не равно нулю.

Тем не менее мне интересно узнать, есть ли более формальный способ определить это на уровне Entity Class.

Спасибо

@Query - это не JPA API, поэтому понятия не имею, что он там делает. Вы просто пишете запрос JPQL для объектов типа FooSomething, где это поле не равно нулю. И в чем в этом трудность? Вы можете определить это в именованном запросе, если хотите, чтобы он был жестко запрограммирован статически.
user3973283 26.11.2018 11:02

В JPA нет ничего стандартного для этого. Вы можете использовать представление, или вы можете использовать проприетарную функцию вашего движка JPA. Но вы не сказали, что есть.

JB Nizet 26.11.2018 11:19

Спасибо, что обратились к моему вопросу, @ Billy Frost

agoodthought 26.11.2018 11:28

Спасибо, что обратились к моему вопросу. @Billy Frost - я имел в виду что-то вроде Query, а не то, что существует ... конечно, наиболее близким к тому, что я искал, был NamedQuery.

agoodthought 26.11.2018 11:34

@JB Nizet написал: «В JPA нет ничего стандартного для этого» - этот ответ меня удовлетворяет. Есть ли способ выбрать ваш комментарий в качестве ответа на мой вопрос?

agoodthought 26.11.2018 11:34
0
5
39
0

Другие вопросы по теме