【发布时间】:2019-04-26 23:43:24
【问题描述】:
这段代码有问题
public interface CharityRepository extends CrudRepository<Charity,Long> {
@Query("select sum(sponsorSum) from Charity")
Integer totalCharitySum();
}
抛出异常
org.springframework.beans.factory.UnsatisfiedDependencyException:创建文件 [D:\IdeaProjects\maraphonskills(3)\target\classes\com\maraphon\maraphonskills\controllers\AdminController.class 中定义的名称为“adminController”的 bean 时出错]:通过构造函数参数0表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException: Error Creating bean with name 'charityServiceImpl' defined in file [D:\IdeaProjects\maraphonskills(3)\target\classes\com\maraphon\maraphonskills\service\CharityServiceImpl.class ]:通过构造函数参数0表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 'charityRepository' 的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException: Validation failed for query for public abstract java.lang.Short com.maraphon.maraphonskills.repository.CharityRepository.totalCharitySum()!
原因: org.springframework.beans.factory.UnsatisfiedDependencyException: 创建文件中定义的名称为“charityServiceImpl”的 bean 时出错 [D:\IdeaProjects\maraphonskills(3)\target\classes\com\maraphon\maraphonskills\service\CharityServiceImpl.class]: 通过构造函数参数 0 表示的不满足的依赖关系; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为 'charityRepository' 的 bean:调用 init 方法 失败的;嵌套异常是 java.lang.IllegalArgumentException: 查询方法 public abstract java.lang.Short 的验证失败 com.maraphon.maraphonskills.repository.CharityRepository.totalCharitySum()!
原因:org.springframework.beans.factory.BeanCreationException:创建名为“charityRepository”的bean时出错:调用init方法失败;嵌套异常是 java.lang.IllegalArgumentException: Validation failed for query for public abstract java.lang.Short com.maraphon.maraphonskills.repository.CharityRepository.totalCharitySum()!
原因:java.lang.IllegalArgumentException:查询方法 public abstract java.lang.Short com.maraphon.maraphonskills.repository.CharityRepository.totalCharitySum() 验证失败!
原因:java.lang.NullPointerException: null
但是这段代码运行良好
public interface CharityRepository extends CrudRepository<Charity,Long> {
@Query("select sum(sponsorTarget) from Registration")
Short totalSum();
}
@Modifying 没有帮助。可能是什么问题?
慈善守则
@Entity
@EqualsAndHashCode(exclude = "registrations")
@Data
public class Charity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@Lob
private String description;
private String fileName;
private Short SponsorSum;
@OneToMany(mappedBy = "charity")
public Set<Registration> registrations = new HashSet<>();
}
注册码
@Entity
@EqualsAndHashCode(exclude = "sponsorShips")
@Data
public class Registration {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
public Runner runner;
private String registrationDateTime;
@ManyToOne
public Charity charity;
@ManyToOne
public RaceKitOption raceKitOption;
@ManyToOne
public RegistrationStatus registrationStatus;
private Short sponsorTarget;
@OneToMany(mappedBy = "registration")
public Set<SponsorShip> sponsorShips = new HashSet<>();
// public RegistrationEvent registrationEvent;
}
【问题讨论】:
-
请发
Charity代码 -
我编辑了我的问题
-
注意
sponsorSum(查询中)与SponsorSum(实体中)开头的大写字母 -
OOOOOOOH 我的......没注意到这个。谢谢你的帮助!
-
错误消息显示:“方法公共抽象 java.lang.Short com.maraphon.maraphonskills.repository.CharityRepository.totalCharitySum() 的查询验证失败”。所以不,它不适用于 Short。