powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate @OneToOne
3 сообщений из 3, страница 1 из 1
Hibernate @OneToOne
    #40054518
Павел Гужанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две таблицы:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
@Entity
@Table(name = "documents")
public class Document implements Comparable<Document> {

    @Id
    @Column(name = "document_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long documentId;

    @OneToOne(mappedBy = "document", cascade = CascadeType.ALL, optional = false, fetch = FetchType.LAZY)
    private DocumentTmp documentTmp;
}

@Entity
@Table(name = "document_tmp")
public class DocumentTmpEntity {
    @Id
    @Column(name = "document_content_tmp_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long documentContentTmpId;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "document_id", nullable = false)
    private Document document;
}


Имеется репозиторий
Код: java
1.
2.
@Repository
public interface DocumentTmpRepository extends CrudRepository<DocumentTmpEntity, Long> {}


В методе:
Код: java
1.
2.
3.
4.
5.
6.
7.
@Transactional
public Document getDocument(){
    Iterable<DocumentTmpEntity> documentTmpList = documentTmpRepository.findAll();
    for (DocumentTmpEntity documentTmp : documentTmpList) {
        Document document = documentTmp.getDocument();
    }
}


document создается, но все поля у него null.
Как мне получить не пустой document?
...
Рейтинг: 0 / 0
Hibernate @OneToOne
    #40054544
Павел Гужанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос закрыт, добавил в репозиторий метод
Код: java
1.
2.
@Query(value = "select d from DocumentTmpEntity d join fetch d.document")
List<DocumentTmpEntity> lazyLoad();
...
Рейтинг: 0 / 0
Hibernate @OneToOne
    #40063500
В то время как это возможно хорошее решение с точки зрения производительности, изначальный вариант тоже должен был работать верно. Получилось выяснить почему поля были null? Не помню чтоб с таким когда-либо сталкивался. Разве что если смотреть на эти поля через reflection - в таком случае и правда они все будут null, потому как это поля прокси.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate @OneToOne
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]