Я новичок в весенней загрузке. Мне нужно создать метод findByCode, который в некоторой степени похож на findById (), но вместо длинного идентификатора используется длинный код. (Код не является первичным ключом). Может кто-нибудь, пожалуйста, помогите
отображения расписания базы данных (идентификатор, начало, конец, день, код)
Представление TimeTableMapping
@Entity
@Table(name="timetablemappings")
@EntityListeners(AuditingEntityListener.class)
public class TimeTableMapping {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String day;
private String start;
private String end;
private String subject_code;
private String time_table_code;
private Long code;
//Constructor
//Getters and setters
TimeTableMappingDAO
@Service
public class TimeTableMappingDAO {
@Autowired
TimeTableRepository timeTableRepository;
@Autowired
TimeTableMappingRepository timeTableMappingRepository;
//to save
public TimeTableMapping save(TimeTableMapping timeTableMapping){
return timeTableMappingRepository.save(timeTableMapping);
}
//to save all
public void saveAll(List<TimeTableMapping> timeTableMapping){
timeTableMappingRepository.saveAll(timeTableMapping);
}
//to search all
public List<TimeTableMapping> findAll(){
return timeTableMappingRepository.findAll();
}
public List<Long> findDistinct(){
return timeTableMappingRepository.findTimeTableMappingDistinctByCode();
}
//get by id
public TimeTableMapping findById(Long id){
return timeTableMappingRepository.findById(id).orElse(null);
}
public TimeTableMapping findByCode(Long code){
return timeTableMappingRepository.findByCode(code).orElse(null);
}
//delete
public void delete(Long id){
timeTableMappingRepository.deleteById(id);
}
}
контроллер timeTableMapping
@Controller
public class TimeTableMappingController {
@Autowired
private TimeTableMappingDAO timeTableMappingDAO;
@Autowired
private TimeTableDAO timeTableDAO;
@Autowired
private SubjectDAO subjectDAO;
@Autowired
private StudentGroupDAO studentGroupDAO;
@Autowired
private DayDAO dayDAO;
@Autowired
private TimeDAO timeDAO;
@RequestMapping("/timeTableMapping")
public String viewHomePage(Model model){
System.out.println("hey");
List<Long> timeTableMappingDetails= timeTableMappingDAO.findDistinct();
// List<TimeTableMapping> timeTableMappingDetails=timeTableMappingDAO.select(timeTableMappingDetails1);
System.out.println("hey");
System.out.println(timeTableMappingDetails.toString());
List<TimeTableMapping> tempList=new ArrayList<>();
for(int i = 0 ; i < timeTableMappingDetails.size(); i++) {
TimeTableMapping tempTimeTable = new TimeTableMapping();
tempTimeTable.setCode(timeTableMappingDetails.get(i));
tempList.add(tempTimeTable);
System.out.println(timeTableMappingDetails.get(i));
}
model.addAttribute("timeTableMappingDetails",tempList);
return "timeTableMapping";
}
@RequestMapping(value="/timeTableMapping/saveAll",method= RequestMethod.POST)
public String saveTimeTable(@ModelAttribute("timeTableMapping") TimeTableMapping timeTableMapping){
String[] dayArray = timeTableMapping.getDay().split(",");
String[] subArray = timeTableMapping.getSubject_code().split(",");
String[] startArray = timeTableMapping.getStart().split(",");
String[] endArray = timeTableMapping.getEnd().split(",");
String[] uniqueDay = Arrays.stream(dayArray).distinct().toArray(String[]::new);
String[] uniqueStart = Arrays.stream(startArray).distinct().toArray(String[]::new);
String[] uniqueEnd = Arrays.stream(endArray).distinct().toArray(String[]::new);
List<TimeTableMapping> tempList = new ArrayList<>();
int count=0;
for(int j=0;j<uniqueStart.length;j++) {
for(int i = 0 ; i < uniqueDay.length; i++) {
TimeTableMapping tempTimeTable = new TimeTableMapping();
tempTimeTable.setStart(uniqueStart[j]);
System.out.println(uniqueStart[j]);
tempTimeTable.setEnd(uniqueEnd[j]);
tempTimeTable.setTime_table_code(timeTableMapping.getTime_table_code());
tempTimeTable.setCode(timeTableMapping.getCode());
tempTimeTable.setDay(uniqueDay[i]);
tempTimeTable.setSubject_code(subArray[count]);
tempList.add(tempTimeTable);
count++;
}
}
timeTableMappingDAO.saveAll(tempList);
return "redirect:/timeTableMapping";
}
@RequestMapping("/timeTableMapping/new")
public String addTimeTableMapping(Model model){
System.out.println("hey");
System.out.println("hey");
TimeTableMapping timeTableMapping =new TimeTableMapping();
model.addAttribute("timeTableMapping",timeTableMapping);
List<TimeTable> timeTableDetail = timeTableDAO.findAll();
model.addAttribute("timeTables", timeTableDetail);
List<Subject> subjectDetail = subjectDAO.findAll();
model.addAttribute("subjects", subjectDetail);
String[] days = new String[] { "Monday", "Tuesday"};
List<Day> dayDetails = dayDAO.findAll();
model.addAttribute("days",dayDetails);
List<Time> timeDetails = timeDAO.findAll();
model.addAttribute("times",timeDetails);
return "addTimeTableMapping";
}
@RequestMapping("/timeTableMapping/edit/{id}")
public ModelAndView updateTimeTable(@PathVariable(name="id")Long code){
ModelAndView mav=new ModelAndView(("updateTimeTableMapping"));
//mav.addObject("timeTableMapping", new TimeTableMapping());
TimeTableMapping timeTableMapping = timeTableMappingDAO.findByCode(code);
//System.out.println(timeTableMapping.getTime_table_code());
// List<TimeTableMapping> timeTableMapping1= timeTableMappingDAO.select(timeTableMapping.getTime_table_code());
mav.addObject("timeTableMapping",timeTableMapping);
List<TimeTable> timeTableDetails = timeTableDAO.findAll();
mav.addObject("timeTables", timeTableDetails);
List<Subject> subjectDetails = subjectDAO.findAll();
mav.addObject("subjects", subjectDetails);
List<StudentGroup> studentGroupDetails = studentGroupDAO.findAll();
mav.addObject("studentGroups",studentGroupDetails);
List<Day> dayDetails = dayDAO.findAll();
mav.addObject("days",dayDetails);
List<Time> timeDetails = timeDAO.findAll();
mav.addObject("times",timeDetails);
return mav;
}
@RequestMapping("/timeTableMapping/delete/{code}")
public String deleteProduct(@PathVariable(name="code") Long code){
timeTableDAO.delete(code);
return "redirect:/timeTableMapping";
}
}
репозиторий timeTableMapping
@Repository
public interface TimeTableMappingRepository extends JpaRepository<TimeTableMapping, Long> {
//Optional<TimeTableMapping> findById(String id);
//TimeTableMapping findTimeTableMappingsByTime_table_code(String time_table_code);
@Query("SELECT DISTINCT t.code FROM TimeTableMapping t")
List<Long> findTimeTableMappingDistinctByCode();
List<TimeTableMapping> findByCode(Long code);
//public List<TimeTableMapping> findDistinctByCode();
}