传奇上古星龙 传奇上古星龙
关注数: 18 粉丝数: 6 发帖数: 366 关注贴吧数: 139
求教一下各位大佬关于Java spring中 jpa 的自动装配问题 是这样的,楼主最近在写学校项目的时候遇到了以下的问题:然后根据百度翻译: *************************** 应用程序无法启动 *************************** 描述: com.app.schoolstudentsmanageSys.controller中的现场成就服务。AchievementController需要“com.app.schoolstudentsmanageSys.service”类型的bean。找不到“AchievementService”。 注入点有以下注释: [email protected](required=true) 行动: 考虑定义“com.app.schoolstudentsmanageSys.service”类型的bean。配置中的“成就服务”。 之后上网查了半天,说是在自动装配时没有声明 repository 所在包的位置,于是我又在pom.xml中添加了声明:结果还是不行。 相关代码如下: 首先是项目结构:然后是出问题的相关代码: 首先是AchievementService:源代码: package com.app.schoolstudentsmanageSys.service; import com.app.schoolstudentsmanageSys.po.S_Achievement; import org.springframework.stereotype.Repository; import java.util.List; //@Repository 作用于持久层,被作为持久层操作的bean来使用, // 使用@Repository可以消除在业务层注入对象时的错误 @Repository public interface AchievementService { //学生对自己的成绩查询 List<S_Achievement> Student_Achievement(long s_id); //管理员对学生的成绩进行查询 } 然后是 AchievementServiceImpl :源代码: package com.app.schoolstudentsmanageSys.service; import com.app.schoolstudentsmanageSys.dao.S_AchievementRepository; import com.app.schoolstudentsmanageSys.po.S_Achievement; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; public class AchievementServiceImpl implements AchievementService{ @Autowired private S_AchievementRepository s_achievementRepository; @Override public List<S_Achievement> Student_Achievement(long s_id){ List<S_Achievement> SA; SA = s_achievementRepository.GetStudentsAchievement(s_id); return SA; } } 然后是 dao 层的 S_AchievementRepository:源代码: package com.app.schoolstudentsmanageSys.dao; import com.app.schoolstudentsmanageSys.po.S_Achievement; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import javax.transaction.Transactional; import java.util.List; public interface S_AchievementRepository extends JpaRepository<S_Achievement,Integer> { @Transactional @Modifying //根据id返回学生的每一科成绩 @Query("select sa from S_Achievement sa where sa.s_id=:id") List<S_Achievement> GetStudentsAchievement(long id); } 然后是相关的实体类 S_Achievement :源代码: package com.app.schoolstudentsmanageSys.po; import org.hibernate.annotations.Proxy; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Proxy(lazy = false) @Entity @Table(name = "S_achievement")//学生成绩 public class S_Achievement { @Id @GeneratedValue private long s_id;//学号 private Double s_point;//学生成绩 private String s_subject;//科目,后面要通过这个数据查询,不能随意更改 private long s_s_id;//对应科目的id号,方便之后的查询 public long getS_s_id() { return s_s_id; } public void setS_s_id(long s_s_id) { this.s_s_id = s_s_id; } public long getS_id() { return s_id; } public void setS_id(long s_id) { this.s_id = s_id; } public Double getS_point() { return s_point; } public void setS_point(Double s_point) { this.s_point = s_point; } public String getS_subject() { return s_subject; } public void setS_subject(String s_subject) { this.s_subject = s_subject; } } 楼主只是想实现一个查找成绩的功能,求教各位大佬帮帮忙!
1 下一页