, почему это случилось со мной
в методе @TransActionAl < /code>, когда
я ссылаюсь на объект, загруженный из DB в рамках того же метода? Государства «Нет сессии», но что приведет к закрытию? Как я понимаю, сеанс Hibernate должен быть жив внутри метода @TransactionAl , пока он не будет выполнен. сеансы. Это потому, что я использую @orderby < /code> и работает, только если объект загружается из базы данных.@Test
public void getOpenTest() {
...
Advertisement closedAdvertisement = closeAdvertisement(initialAdvertisement.getId());
...
}
//this method inside same test class
@Transactional
private Advertisement closeAdvertisement(Long id){
Advertisement advertisement = advertisementRepository.findOne(id);
//*** CRASHES HERE ***
//The method is @Transactional. Why session closed here?
advertisement.getStatusChronology().get(0);
...
}
< /code>
Repository < /p>
@Repository
public interface AdvertisementRepository extends CrudRepository {
//Simple request just to load entity
@Query("select ad "
+ " from Advertisement ad")
public ListgetOpen();
}
< /code>
объекты < /p>
@Entity
@Table(name = "advertisement")
public class Advertisement {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
...
@OneToMany(mappedBy = "advertisement", cascade = CascadeType.ALL)
@OrderBy("updated DESC")
List statusChronology;
...
}
@Entity
@Table(name = "status")
public class Status {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long id;
@ManyToOne
@JoinColumn(name = "statusChronology")
private Advertisement advertisement;
@NotNull
@Column(name = "is_open")
private Boolean isOpen;
@NotNull
@Column
private LocalDateTime updated;
...
}
< /code>
Исключение < /p>
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: web.scraper.database.model.Advertisement.statusChronology, could not initialize proxy - no Session
...
at web.scraper.database.repository.AdvertisementRepositoryTest.closeAdvertisement(AdvertisementRepositoryTest.java:80)
at web.scraper.database.repository.AdvertisementRepositoryTest.getOpenTest(AdvertisementRepositoryTest.java:107)
...
Подробнее здесь: https://stackoverflow.com/questions/449 ... no-session