LazyInitializationException: Почему Hibernate не может создать сеанс для ленивой загрузки?JAVA

Программисты JAVA общаются здесь
Anonymous
LazyInitializationException: Почему Hibernate не может создать сеанс для ленивой загрузки?

Сообщение Anonymous »

Мой проект использует, чтобы иметь много метода @transactional везде. Теперь из -за бизнес -логики я не хочу отказываться, когда у меня есть проблема, но хочу установить свой объект в статус ошибки (он же сохранен в DB, ​​так что определенно не откат), поэтому я удалил несколько @Transactional для начала. />
Теперь вот моя следующая сбоя и поиск решений и поиск решений: < /p>


Мы используем конфигурацию аннотации, поэтому нет конфигурации XML здесь. а затем удалил (я ясно вижу ее в журналах при добавлении конфигурации, чтобы увидеть их), что, по -видимому, нормально в соответствии с пружинной документацией. Загрузите ленивый атрибут, который я хочу использовать с помощью hibernate.initialize (), а затем он не порождает LazyInitializationException. Мне кажется тривиальным, что если я использую ленивую нагрузку, я хочу, чтобы Hibernate создал сеанс (что он, кажется, вполне способен делать при выполнении hibernate.initialize ()), чтобы автоматически загрузить дату. Я действительно чувствую, что упускаю что -то основное в Hibernate, ленивом загрузке и сеансах, что делает весь этот беспорядок намного менее сложным. < /P>

Вот пример: < /p>

@Entity
@Table(name = "tata")
public class Tata {

@Id
@Column(name = "tata_id")
private Long id;

// getter / setter etc
}

@Entity
@Table(name = "toto")
public class Toto {

@Id
@Column(name = "toto_id")
private Long id;

@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "tata_id")
private Tata tata;

// getter / setter etc
}

@Service("totoManager")
public class TotoManager extends GenericManagerImpl {

@Autowired
private EntityManager entityManager;
@Autowired
private TotoRepository totoRepository;

public void doSomethingWithTotos() throws XDExceptionImpl {

List totos = this.totoRepository.findAll();

for (toto toto : totos) {
// LazyInitializationException here
LOGGER.info("tata : " + toto.getTata().getId());
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/552 ... lazy-loadi

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