我是新來的spring,同時從表中獲取記錄與其他表有關係得到這個懶洋洋的初始化錯誤。 我已經在網上閱讀了很多,但沒有得到適當的方法。未能在對象轉換爲json的過程中懶惰地初始化一個角色集合
表1:
@SuppressWarnings("serial")
@Entity
public class Terminal extends BaseEntity {
@Column(length = 100, unique = true)
private String shortName;
@Column
private short number; // short stores up to 32767 value
@Column
private String description;
@OneToMany
@JoinColumn(name = "terminal_id", referencedColumnName = "uuid")
@Cascade({ CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DELETE })
private Set<BusinessHour> businessHour;
public String getShortName() {
return shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public short getNumber() {
return number;
}
public void setNumber(short number) {
this.number = number;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Set<BusinessHour> getBusinessHour() {
return businessHour;
}
public void setBusinessHour(Set<BusinessHour> businessHour) {
this.businessHour = businessHour;
}
表2:
@SuppressWarnings("serial")
@Entity
public class BusinessHour extends BaseEntity {
@Column
private DayOfWeek dayOfWeek;
@Column
private LocalTime startOfOperation;
@Column
private LocalTime endOfOperation;
public DayOfWeek getDayOfWeek() {
return dayOfWeek;
}
}
服務代碼:
@Service
public class TerminalServiceImpl implements TerminalService {
@Autowired
TerminalRepository terminalRepository;
Iterable<Terminal> allTerminals = terminalRepository.findAll();
List<Terminal> terminalList = new ArrayList<Terminal>();
for (Terminal terminal : allTerminals) {
terminalList.add(terminal);
}
return terminalList;
}
終端資源庫合作德:在這裏我調試過程中遇到錯誤
@Transactional
public interface TerminalRepository extends CrudRepository<Terminal, Long> {
}
代碼:
private List<Terminal> updateTerminalList() {
List<Terminal> allTerminals = terminalService.fetchAllTerminal();
return allTerminals;
}
public void terminalWrapperRun() {
try {
Payload payload = createTerminalPayload(applicationId);
String json3 = object2Json(payload);
kafkaRESTUtils.sendServerPayload(json3);
} catch (Exception e1) {
e1.printStackTrace();
}
}
public String object2Json(Object dataArray) throws JsonProcessingException {
return mapper.writeValueAsString(dataArray);
}
錯誤:
com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role: terminal.model.Terminal.businessHour, could not initialize proxy - no Session (through reference chain:
獲取異常而取對象轉換爲JSON。我發現由於代理對象返回由於提取類型懶惰(我想保持原樣)。
的可能的複製[org.hibernate.LazyInitializationException:無法初始化代理 - 沒有會話?](https://stackoverflow.com/questions/22439306/org-hibernate-lazyinitializationexception-could-not-initialize-proxy -no-sessi) –