LAZY OneToOne 관계가 있고 이며 사용 당로드하려고합니다. (동일한 모델에는 OneToOne 관계가 더 많아서 데이터베이스에 쿼리하는 횟수가 적습니다.)스프링 JPA LAZY로드 OneToOne 관계가로드되지 않습니다.
로그 파일의 원시 db 쿼리를 보면 에 액세스하려고 시도하지 않을 때 SELECT FROM City...
문을 인쇄 할 수 없습니다.
하지만 user.city
에 액세스 할 때 SQL 문이 로그에서 실행되는 것을 볼 수 있습니다. 클래스 인스턴스가 나타납니다.
이 코드는 :
@Entity
@Table(
indexes={@Index(name = "name", columnList="name")}
)
public class City {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long id;
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY)
public State state;
public String name;
public String accentName;
@Column(name = "location", columnDefinition = "POINT")
public Point location;
}
:
System.out.println(user.city);
System.out.println(user.city.location);
Hibernate:
select
city0_.id as id1_3_0_,
city0_.accentName as accentNa2_3_0_,
city0_.location as location3_3_0_,
city0_.name as name4_3_0_,
city0_.state_id as state_id5_3_0_
from
City city0_
where
city0_.id=?
[email protected]
null
천 멋진 내 모델입니다 인쇄 할 수 있지만 모두가 City
기업이다 null
내부에 가득 아래에 더 많은 정보를 볼 수
그냥
이 도움을 주셔서 대단히 감사합니다 ..@OneToOne(fetch = FetchType.EAGER)
으로이 테스트 할 때 모두가 잘 작동하고 있음을 언급한다.
설정자가 없거나 @Entity (access = AccessType.FIELD)에 문제가 있습니까? – maszter
@maszter 내 필드가 공개되어있어 'r @Entity (access = AccessType.FIELD)에 문제가 있습니까?' –