Можно ли объединить две сущности в спецификации без связи между ними, но с общим полемJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли объединить две сущности в спецификации без связи между ними, но с общим полем

Сообщение Anonymous »

Пишу поиск по полям. Есть две сущности, между которыми существует только связь @ManyToOne. Можно ли сделать объединение, если корневым элементом является DataListEntity и на его основе нужно строить спецификацию?
  • Но без создания отношения @OneToMany в DataListEntity
  • Без подзапросов

Код: Выделить всё

    public static Specification joinWithDataListOptions() {
return (root, query, cb) -> {
Join join = root.join("join_field", JoinType.LEFT); //FIELD????
return cb.conjunction();
};
}

Код: Выделить всё

@Entity
@Data
@Accessors(chain = true)
@Table(name = "data_list")
@FieldNameConstants
public class DataListEntity {
@Id
@GeneratedValue(generator = "uuid")
private UUID id;

@Column(name = "name")
private String name;

@Column(name = "description")
private String description;

@Column(name = "key")
private String key;
}
Второй объект, который имеет отношение к первому объекту, как @ManyToOne

Код: Выделить всё

@Entity
@Data
@Accessors(chain = true)
@Table(name = "data_list_option")
public class DataListOptionEntity implements EasyLoggable {
@Id
@GeneratedValue(generator = "uuid")
private UUID id;

@Column(name = "data_list_id")
private UUID dataListId;

@Column(name = "business_account_id")
private UUID businessAccountId;

@Column(name = "option")
private String option;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "data_list_id", insertable = false, updatable = false)
private DataListEntity dataList;
}
Зачем мне это нужно? Чтобы потом использовать соединение при поиске по полям таблицы. Я хочу не для каждого поиска по полю делать соединение, а использовать одно соединение и добавлять к нему множество предикатов, но потом вызывать логику в других методах и подключаться через "и"

Подробнее здесь: https://stackoverflow.com/questions/792 ... ionship-be
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»