В настоящее время я немного заблокирован этим, и я не вижу его четко.
Объект привязки Hibernate связан с текущим пользователем
Поэтому я надеюсь, что у одного из вас есть хорошая идея, чтобы помочь мне.
Важный код в данный момент:
@Entity
@Table(name = "T_NOTA_RECIPIENT")
public class NotaRecipient extends PersistentEntity {
@Id
@Column(name = "NOTA_RECIPIENT_SID")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "STATUS", insertable = true, updatable = true)
@Enumerated(EnumType.STRING)
private Status status = Status.NEW;
@ManyToOne
@JoinColumn(name = "NOTA_SID", referencedColumnName = "NOTA_SID", nullable = false)
private Nota nota;
@ManyToOne
@JoinColumn(name = "CREATOR_OFFICE_SID", referencedColumnName = "OFFICE_SID", nullable = false)
private Office creator;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "notaRecipient")
private Set<FollowUp> followUps;
...
}
Сейчас, на самом деле я не хочу, чтобы загрузить все FollowUp
, которые находятся в БД, но только один из текущего пользователя.
Но проблема в том, что я хочу включить FollowUp, чтобы я мог выполнить запрос подкачки базы данных.
Мы используем hibernate, Spring Data и Query DSL с BooleanBuilder для «уточнения» нашего поиска.
Я думал об использовании @Formula
, но это должна быть постоянная строка, поэтому я не могу включить в нее текущий userId.
Вторым решением может быть настройка FollowUp как @Transient
и извлечение его непосредственно в БД и установка его в службе шахт.
Проблема заключается в том, что я не могу использовать его в качестве фильтра, а затем заказывать его.
@Formula
не имеет такой документации, поэтому можно сделать @Transient
пользователей и использовать их в @Formula
?
Я спросил некоторых коллег, но они не могли мне помочь.
Итак, пришло время спросить здесь. Я могу получить текущего пользователя в API, так что это не проблема.
У кого-нибудь есть альтернативные решения?
Как вы обнаруживаете «текущего пользователя»? – StanislavL
Я извлекаю его с помощью 'SecurityUtil.getUser()', который выберет его из 'SecurityContextHolder' – chillworld