![](/img/trans.png)
[英]Pageable parameter in my jpaRepository.findAll() returns an SqlSyntaxErrorException
[英]Why is the JpaRepository.findAll() method fetching the wrong data from my Oracle database?
我的Spring Boot應用程序從Oracle數據庫中提取了錯誤的數據,如中所述:它檢索了正確數量的行,但是內容不正確(數據丟失,[適當地]重復了其他行)。
我是Spring Boot和Oracle數據庫的新手。 我閱讀了很多教程並進行了編碼。 現在,我嘗試創建Web服務的第一個原型,該原型從Oracle 12c數據庫中獲取數據,並使其可以通過HTTP端點進行訪問。
我使用SQL Developer檢查要顯示的表的內容,然后在Spring Boot應用程序中顯示不同的內容。 我使用Spring Boot 2.1.4。
我要顯示的表包含有關日常運行cronjobs的信息。
這是控制器
import de.dat.verguetung.entity.DailyJobsEntity;
import de.dat.verguetung.service.DailyJobsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@CrossOrigin(origins = "http://localhost:4200")
@RestController
@RequestMapping("/dailyjobs")
public class DailyJobsController {
@Autowired
DailyJobsService dailyJobsService;
@CrossOrigin(origins = "*")
@RequestMapping(value = "/all", method = RequestMethod.GET)
public List<DailyJobsEntity> getAllDailyJobs() {
return dailyJobsService.getAllDailyJobs();
}
}
這是我的存儲庫界面
import de.prototype.entity.DailyJobsEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface DailyJobsRepository extends JpaRepository<DailyJobsEntity, Integer> {
}
這是我的模特
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "LOG_DAILY_JOBS")
public class DailyJobsEntity {
@Id
@Column(name = "JOB_TITLE", nullable = false, length = 100)
private String jobTitle;
@Column(name = "OK", nullable = false, length = 10)
private Integer ok;
@Column(name = "JOB_RESULT", nullable = true, length = 1000)
private String jobResult;
@Column(name = "EXECUTION_DATE", nullable = false)
@Temporal(TemporalType.DATE)
private Date executionDate;
protected DailyJobsEntity() {}
public DailyJobsEntity(String jobTitle, Integer ok, String jobResult, Date executionDate) {
this.jobTitle = jobTitle;
this.ok = ok;
this.jobResult = jobResult;
this.executionDate = executionDate;
}
public Date getExecutionDate() {return executionDate;}
public void setExecutionDate(Date executionDate) {this.executionDate = executionDate;}
public String getJobResult() {return jobResult;}
public void setJobResult(String jobResult) {this.jobResult = jobResult;}
public Integer getOk() {return ok;}
public void setOk(Integer ok) {this.ok = ok;}
public String getJobTitle() {return jobTitle;}
public void setJobTitle(String jobTitle) {this.jobTitle = jobTitle;}
}
這是我的服務
import de.dat.verguetung.dao.DailyJobsRepository;
import de.dat.verguetung.entity.DailyJobsEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class DailyJobsService {
@Autowired
DailyJobsRepository dailyJobsRepository;
public List<DailyJobsEntity> getAllDailyJobs(){
return this.dailyJobsRepository.findAll();
}
}
這是我的主班
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class VerguetungApplication {
public static void main(String[] args) {
SpringApplication.run(VerguetungApplication.class, args);
}
}
該表有156行。 該應用程序獲取156行。 沒關系。 但是這些行中有95%填充了錯誤的內容。 我有一列名為“ EXECUTION_DATE”。 該列的輸入范圍為2019-04-02至2019-04-16。 該應用程序顯示執行日期為2019-04-02的每一行。
如果需要,我可以提供有關表內容的更多詳細信息。
我希望有人能幫助我並指出我的錯誤。 提前致謝 :)
編輯:這是表中的內容:
58 1 58 02.04.19
58 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 58 02.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 0 ORA-01403: Keine Daten gefunden 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 0 ORA-01403: Keine Daten gefunden 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 146 03.04.19
get_vsu_movement_count 1 85 04.04.19
get_vsu_movement_count 1 76 05.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 23 15.04.19
get_vsu_movement_count 1 96 16.04.19
get_vsu_movement_count 1 96 16.04.19
get_vsu_movement_count 1 96 16.04.19
get_vsu_movement_count 1 96 16.04.19
get_vsu_movement_count 1 96 16.04.19
get_vsu_movement_count 1 96 16.04.19
get_vsu_movement_count 1 96 16.04.19
get_vsu_movement_count 1 96 16.04.19
這就是應用程序顯示的內容
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
58 | 1 | 58 | 2019-04-02
58 | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
get_vsu_movement_count | 1 | 58 | 2019-04-02
編輯2用於打印獲取的行的代碼
@CrossOrigin(origins = "http://localhost:4200")
@RestController
@RequestMapping("/dailyjobs")
public class DailyJobsController {
@Autowired
DailyJobsService dailyJobsService;
@CrossOrigin(origins = "*")
@RequestMapping(value = "/all", method = RequestMethod.GET)
public List<DailyJobsEntity> getAllDailyJobs() {
List<DailyJobsEntity> dJobs = dailyJobsService.getAllDailyJobs();
dJobs.stream().forEach(job -> {
System.out.println(job.getJobTitle() + " | " + job.getOk() + " | " + job.getJobResult() + " | " + job.getExecutionDate());
});
System.out.println(dJobs.size());
return dJobs;
}
}
如果我沒記錯的話,您的DailyJobsRepository使用DailyJobsRepository extends JpaRepository<DailyJobsEntity, Integer>
來表示主鍵ID的類型為Integer
,而您的實體DailyJobsEntity
則將ID定義為String類型:
@Id
@Column(name = "JOB_TITLE", nullable = false, length = 100)
private String jobTitle;`
jobTitle是實體的主鍵嗎? 因為我希望PK的類型為Integer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.