Я пытался с этим:Spring Data JPA - Ленивый режим выборки не работает @OneToOne
@OneToOne(mappedBy = "user", fetch = FetchType.LAZY)
private UserInfo userInfo;
Но приведенный выше код не принести лениво.
А также попытался с помощью следующего кода:
@Entity
@NamedEntityGraph(name = "User.detail", attributeNodes = {})
public class User extends AbstractEntity {
@Enumerated(EnumType.ORDINAL)
@Column(name = "country", nullable = false)
private Country country;
@Column(name = "mobile_no", nullable = false)
private String mobileNo;
@Column(name = "password", nullable = false)
private String password;
@OneToOne(mappedBy = "user", fetch = FetchType.LAZY)
private UserInfo userInfo;
// Getter & setter
}
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@EntityGraph(value = "User.detail", type = EntityGraphType.FETCH)
User findById(Long id);
}
Это тоже не работает.
Может ли кто-нибудь мне помочь?
У каждого пользователя есть Пользовательская информация? Если это так, вы должны пометить ассоциацию как необязательную = false. В противном случае Hibernate не имеет понятия, должно ли оно установить значение null или прокси, и, следовательно, заставить проверить, существует ли UserInfo для пользователя. –
http://stackoverflow.com/questions/1444227/making-a-onetoone-relation-lazy –
@jbnizet, я пробовал использовать optional = false, но он не работает. Я также пробовал с @LazyToOne (значение = LazyToOneOption.PROXY), но все еще не работает. –