我的Spring应用程序从Oracle数据库获取错误的数据,因为它检索正确的行数,但内容不正确(数据丢失,其他行可能重复)。
我是Spring和Oracle数据库的新手。我阅读了大量的教程并编写了相应的代码。现在,我尝试创建webservice的第一个原型,该服务从Oracle 12c数据库获取数据,并通过HTTP访问数据。
我使用SQL检查我想要显示的表的内容,它在我的Spring应用程序中显示了不同的内容。我使用SpringBoot2.1.4。
我要显示的表包含有关每天运行的cron作业的信息。
这是控制器
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;
}
}发布于 2019-04-26 08:00:44
如果我没有弄错,您的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是类型的整数。
https://stackoverflow.com/questions/55863087
复制相似问题