Я пытаюсь сопоставить мой POJO с DTO. У меня нет настраиваемых полевых карт, поскольку все мои поля в моем DTO такие же, как и в моем POJO. Но мой POJO имеет несколько уровней отображения. Моя проблема в том, что когда я пытаюсь скопировать содержимое моего POJO в DTO, я получаю LazyInitializationException. Вот код, в котором генерируется исключение.Dozer throwing lazyInitializationException
public TestInfoDTO startTest(long testId)
{
TestInfo info = testDAO.startTest(testId);
Mapper mapper = new DozerBeanMapper();
try
{
// Exception thrown here.
infoDTO = mapper.map(info, TestInfoDTO.class);
} catch(Exception e) {
LOGGER.info("Exception Thrown While Mapping POJO to DTO");
e.printStackTrace();
}
return infoDTO;
}
Это мое ПОЯ.
@Entity
@Table(name = "TEST_INFO")
public class TestInfo implements Serializable,IAuditLog
{
private static final long serialVersionUID = 1L;
private long test_ID;
private String test_name;
private Date creation_date;
private String instructions;
private TestPaperInfo testPaperInfo;
private List<TestResults> testResults;
private List<TestResponse> testResponses;
private List<TestUtility> testUtility;
//Getters and setters with hibernate annotations.
}
И это мой DTO
public class TestInfoDTO
{
private long test_ID;
private String test_name;
private Date creation_date;
private String instructions;
private TestPaperInfo testPaperInfo;
private List<TestResults> testResults;
private List<TestResponse> testResponses;
private List<TestUtility> testUtility;
//Getters and Setters.
}
В приведенном выше POJO, то TestPaperInfo имеет коллекцию другого класса, который в свою очередь, имеет набор вопросов, и каждый вопрос имеет набор ответов. Все они отображаются с использованием аннотаций JPA.
Я проверил содержимое объекта «info», которое я получаю от DAO, и все присутствует. Но когда я пытаюсь скопировать его в объект DTO (объект infoDTO), возникает LazyInitializationException. Это первый раз, когда я использую DTO и Dozer, поэтому кто-нибудь может предположить, что я что-то упустил? Или в чем проблема? Заранее спасибо.