@NamedEntityGraphs --JPA按实体类对象参数中的字段排序问题得解决方法

时间:2022-03-28 04:34:02
JPA按实体类对象参数中的字段排序问题得解决方法
@Entity
@Table(name="complaints")
@NamedEntityGraphs({
@NamedEntityGraph(name="allJoinsButMessages", attributeNodes = {
@NamedAttributeNode("customer"),
@NamedAttributeNode("handling_employee"),
@NamedAttributeNode("genre")
}),
@NamedEntityGraph(name="allJoins", attributeNodes = {
@NamedAttributeNode("customer"),
@NamedAttributeNode("handling_employee"),
@NamedAttributeNode("genre"),
@NamedAttributeNode("complaintMessages")
}),
@NamedEntityGraph(name="noJoins", attributeNodes = { })
})
public class Complaint implements Serializable{
private static final long serialVersionUID = 1L; @Id
@GeneratedValue
private long id; private Timestamp date; @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "customer")
private User customer; @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "handling_employee")
private User handling_employee; @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="genre")
private Genre genre; private boolean closed; @OneToMany(mappedBy = "complaint", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<ComplaintMessage> complaintMessages = new ArrayList<ComplaintMessage>(); //getters and setters
}
@Repository
public interface ComplaintRepository extends JpaRepository<Complaint, Long>{ List<Complaint> findByClosed(boolean closed); @EntityGraph(value = "allJoinsButMessages" , type=EntityGraphType.FETCH)
@Override
List<Complaint> findAll(Sort sort);
}