Spring Jpa:为ManyToOne提供懒惰

时间:2017-04-04 15:59:02

标签: spring hibernate spring-data-jpa

我有记录实体:

@Entity
public class Record implements Serializable {

   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "USER_ID", referencedColumnName = "ID")
   private User user;
   ...

和相应的RecordRepository存储库:

public interface RecordRepository extends JpaRepository<Record, Integer> {

    List<Record> findByUser(User user); 
    ...

每当我致电 findByUser 时,结果记录都包含用户。但我希望从数据库(record.user == null)实现用户不会被提取

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

如果Records通过此findByUser方法一起获取User对象,请尝试重写它,使其仅使用ID:

public interface RecordRepository extends JpaRepository<Record, Integer> {
    List<Record> findByUserId(Long id);
}

在您触摸记录之前,这不应获取记录的用户。

现在,如果您不想将用户发送到输出,则仍然必须忽略该端。例如。在Record.getUser()方法上使用@JsonIgnore,或者如果使用的是DTO(如果您具有相同的实体的不同表示,则应该在DTO转换器中将其映射)。

相关问题