我对Spring还相当陌生。我正在用这个erd查询一个捐赠者下的所有捐赠:
捐赠者|-----协议*-----捐赠(使用桥接表的多对多关系)
这是我的密码:
捐赠者.java
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Donor extends Auditable implements Comparable<Donor>{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank(message = "Cannot have an empty account number field.")
private String accountNumber;
private String accountName;
private String salutation;
private String donorName;
private String cellphoneNumber;
private String emailAddress;
private String companyTIN;
private String phone1;
private String phone2;
private String faxNumber;
private String address1;
private String address2;
private String address3;
private String address4;
private String address5;
private String companyAddress;
private LocalDate birthDate;
private String notes;
@OneToMany(mappedBy = "donor")
List<MOA> moaList = new ArrayList<>();
...
}
捐赠.java
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Donation extends Auditable implements Comparable<Donation> {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank(message = "Cannot have an empty account number field.")
private String accountNumber;
private String accountName;
private String orNumber;
private String date;
private Double amount;
private String notes;
private String needCertificate;
private String purposeOfDonation;
@OneToMany(mappedBy = "donation")
List<MOA> moaList = new ArrayList<>();
...
}
moa.java(协议)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MOA extends Auditable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "donor_id")
@JsonIgnoreProperties("moaList")
private Donor donor;
@ManyToOne
@JoinColumn(name = "donation_id")
@JsonIgnoreProperties("moaList")
private Donation donation;
private String name;
private String donorAccountNumber;
private Long foreignDonationId;
private LocalDate dateSigned;
}
在我的donorrepository中,我试图提出这样一个问题,我希望它能给我想要的东西:
public interface DonorRepository extends JpaRepository<Donor, Long> {
...
@Query(value = "SELECT * FROM donor WHERE account_number = ?1", nativeQuery = true)
List<Donation> findDonorsDonations(String accountNumber);
...
这给了我一个错误
无法将值{1,admin,2021-04-01 10:29:53.0,admin,2021-04-01 10:29:53.0,school,123456,null,null,null,null,null,null,john doe,null,null,null,null,null,null,mr.}从类型[java.lang.object[]]转换为类型[com.package.server.domain.generation];嵌套异常为org
1条答案
按热度按时间z18hc3ub1#
您可以使用specification api和specificationexecutor。
你必须加入mao捐赠(mao与捐赠者),然后查询特定捐赠者的捐赠。