データベースからUserReferenceオブジェクトをロードしたいが、verifier属性から、id、firstName、lastNameだけをロードして、userReferenceが何かを表示するようにしたいこのように:@NamedEntityGraphのサブグラフで指定された属性のみを読み込む方法
{
"id": 1,
"company": "company1",
"companyContactName": "some name",
"companyPosition": "programmer",
"referenceDate": "02/04/2005",
"verifier": {
"id":1
"firstName": "Jane",
"lastName": "Smith"
"email":null,
"username":null,
"office:null,
"department":null
}
}
私はUserReferenceクラスのエンティティのグラフを使用しますが、一つは、私は、電子メール、ユーザ名、オフィスや部門を含め、負荷にユーザーが持っているすべての情報を使用していました。 EntityGraphType.FETCHのようなものをサブグラフに指定する方法はありますか?それで、検証者のID、firstName、lastNameだけがロードされますか?私はあなたがJSONを生成するためのジャクソンを使用していると仮定し
@Getter @Setter
@EqualsAndHashCode(exclude = {"id", "department", "company", "authorities", "hrDetails"})
@ToString(exclude = {"password"})
@Entity
@AllArgsConstructor
@Builder
public class User implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Access(value = AccessType.PROPERTY)
private Long id;
@Size(max = 50)
@Column(name = "first_name", length = 50)
private String firstName;
@Size(max = 50)
@Column(name = "last_name", length = 50)
private String lastName;
@Column(length = 100, unique = true, nullable = false)
private String email;
@Column(length = 50, unique = true, nullable = false)
private String username;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "department_id")
private Department department;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "office_id")
private Office office;
}