간단한 최대 절전 모드 엔터티가 있습니다.
@Entity
@Table(name = "SomeTable")
public class SomeEntity{
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(name = "sme_entity_ID", unique = true, columnDefinition = "BINARY(16)")
@Id
@Getter @Setter private UUID entityId;
@Column(name="some_field_name")
@Getter @Setter private String someFiled;
및 저장소 구현 방법
@Override
@Transactional
public SomeEntity getSomeEntity(UUID someEntityId) {
return (SomeEntity) getSession().load(SomeEntity.class, someEntityId);
}
DB에 엔티티가 없으면 서비스에서 예외를 던지고 싶습니다. 존재하지 않는 엔티티를 얻기 위해 요청을 보내면 반환됩니다.com.sun.jdi.InvocationException occurred invoking method.
SomeEntity someEntity = entityRepository.getSomeEntity(someEntityID);
이 경우 someEntity는 널 필드가있는 오브젝트입니다. 그리고이 개체에서 일부 필드를 가져 오려고하면 (null인지 확인하기 위해) 다음 예외가 발생합니다. could not initialize proxy - no Session
POJO 개체에서 값을 가져 오는 데이 예외가 발생하는 이유는 무엇입니까?
Session.load()
데이터베이스에 접속하지 않고 항상 "프록시"(Hibernate 용어)를 반환합니다. Hibernate에서 proxy는 주어진 식별자 값을 가진 객체이고, 그것의 속성은 아직 초기화되지 않았으며, 단지 임시 가짜 객체처럼 보입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다