这是我的实体:如何使用休眠模式,列延迟加载,可以为空
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "surname")
private String surname;
@ManyToOne(fetch = FetchType.LAZY, cascade=CascadeType.MERGE)
@JoinColumn(name = "id_city")
private City city;
//...
}
在我的仓库,我有:
public interface UserRepository extends JpaRepository<User, Long>{
@Query("SELECT u FROM User u JOIN FETCH u.city")
public List<User> findAllUserForApi();
}
如果有任何城市的表,findAllUserForApi()
节目me关于用户的全部信息:
[{"id":1,"name":"John","surname":"Pillman","city":{"id":1,"name":"New York"}]
如果没有城市,我想至少得到[{"id":1,"name":"John","surname":"Pillman","city":null]
但我什么也没有:[]
请帮助我。
为什么不简单地使用LEFT JOIN FETCH? – arturo
辉煌!我会将其标记为答案。 –