У меня есть объект домена, который содержит другой объект домена; назовите их A и B. B содержит большой двоичный объект (файл изображения), который может быть большим. До тех пор, пока я имею дело только с одним А, наличие В на А не является проблемой. Тем не менее, иногда я буду иметь дело с тысячами А, в которых перенос вокруг сгустка на Б приводит к истощению кучи. Когда я имею дело с таким большим количеством А, мне действительно все равно не нужен Б.
Есть ли какой-нибудь способ сказать Hibernate игнорировать это свойство для определенного вызова? Должен ли я просто сделать переходный B и иметь дело с обновлением / удалением вручную в этом случае?
Прямо сейчас, чтобы обойти эту проблему, я использую SQL-запрос, чтобы получить все нужные мне идентификаторы, затем перебираю этот список, получая каждый объект домена, делая то, что мне нужно, а затем выселяя его.
Кроме того, я не могу лениво загрузить B, потому что я нахожусь в среде сервлета, поэтому мой сеанс Hibernate закрывается, прежде чем я получаю доступ к свойствам в большинстве случаев.
@Entity
@Table(name="A")
public class A {
private Long id
@OneToOne(fetch = FetchType.EAGER, cascade = { CascadeType.ALL }, orphanRemoval = true)
@JoinColumn(name = "a_id", referencedColumnName = "b_id", nullable = true)
@NotFound(action = NotFoundAction.IGNORE)
private B b
...getters and setters
}
@Entity
@Table(name="B")
public class B {
private Long id;
private byte[] blob;
...getters and setters
}
Спасибо