Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA按两个日期之间的日期查找_Java_Spring_Hibernate_Spring Boot_Jpa - Fatal编程技术网

Java JPA按两个日期之间的日期查找

Java JPA按两个日期之间的日期查找,java,spring,hibernate,spring-boot,jpa,Java,Spring,Hibernate,Spring Boot,Jpa,在这里,我试图使用JPA从MYSQL DB获取数据,但我在设置data object来处理该条件时遇到了麻烦,因为我知道我必须创建和data object来处理它,我如何创建date object来处理所需的数据 这里是我的普通疑问: select t.id, t.MSISDN, t.Param1, t.param2 from BULK_REPOSITORY t where t.Camp_Start_Date between Sysdate - 2 and sysdate and t.

在这里,我试图使用JPA从MYSQL DB获取数据,但我在设置data object来处理该条件时遇到了麻烦,因为我知道我必须创建和data object来处理它,我如何创建date object来处理所需的数据

这里是我的普通疑问:

select t.id, t.MSISDN, t.Param1, t.param2
  from BULK_REPOSITORY t
where t.Camp_Start_Date between Sysdate - 2 and sysdate
   and t.status = 0
   and t.camp_type = 1;
应用程序:

@SpringBootApplication
public class AccessingDataJpaApplication {

    private static final Logger log = LoggerFactory.getLogger(AccessingDataJpaApplication.class);
    Bulk_repository bulk ;


    public static void main(String[] args) {
        SpringApplication.run(AccessingDataJpaApplication.class);
    }


    @Bean
    public CommandLineRunner demo(Bulk_repositoryRepository repository) {
        return (args) -> {

            // fetch customers by Status
            log.info("Customer found with findByStatus('0'):");
            log.info("--------------------------------------------");
            repository.findAllByStatusAndCampTypeAndCampStart_dateBetween(1,2,Date,Date-2).forEach(on -> {
                log.info(on.toString());
            });
        };
    }
批量存储库类:

@Entity
@Table(name = "BULK_REPOSITORY")
public class Bulk_repository {

   @Id
   @GeneratedValue(strategy=GenerationType.AUTO)
   @Column(name = "id")
   private long id;

   @Column(name = "msisdn")
   private String msisdn;

   @Column(name = "camp_start_date")   
   private Date campStartDate;

   @Column(name = "camp_end_date")
   private Date campEndDate;

   @Column(name = "camp_type")
   private int campType;

   @Column(name = "camp_cd")
   private String camp_cd;

   @Column(name = "status")
   private int status;

   @Column(name = "process_date")
   private Date processDate;

   @Column(name = "entry_date")
   private Date entryDate;

   @Column(name = "entry_user")
   private String entry_user;

   @Column(name = "param1")
   private String param1;

   @Column(name = "param2")
   private String param2;

   @Column(name = "param3")
   private String param3;

   @Column(name = "param4")
   private String param4;

   @Column(name = "param5")
   private String param5;

   @Column(name = "error_desc")
   private String error_desc;

   @Column(name = "fulfilment_status")
   private int fulfilment_status;
## getter and setter and ToString
  import org.springframework.data.repository.CrudRepository;

    public interface Bulk_repositoryRepository extends CrudRepository<Bulk_repository, Long> {
          List<Bulk_repository>  findAllByStatusAndCampTypeAndCampStart_dateBetween(int status, int campType,Date campStart_dateStart, Date campStart_dateEnd);
         Bulk_repository findById(long id);
    }
大容量存储库存储库类:

@Entity
@Table(name = "BULK_REPOSITORY")
public class Bulk_repository {

   @Id
   @GeneratedValue(strategy=GenerationType.AUTO)
   @Column(name = "id")
   private long id;

   @Column(name = "msisdn")
   private String msisdn;

   @Column(name = "camp_start_date")   
   private Date campStartDate;

   @Column(name = "camp_end_date")
   private Date campEndDate;

   @Column(name = "camp_type")
   private int campType;

   @Column(name = "camp_cd")
   private String camp_cd;

   @Column(name = "status")
   private int status;

   @Column(name = "process_date")
   private Date processDate;

   @Column(name = "entry_date")
   private Date entryDate;

   @Column(name = "entry_user")
   private String entry_user;

   @Column(name = "param1")
   private String param1;

   @Column(name = "param2")
   private String param2;

   @Column(name = "param3")
   private String param3;

   @Column(name = "param4")
   private String param4;

   @Column(name = "param5")
   private String param5;

   @Column(name = "error_desc")
   private String error_desc;

   @Column(name = "fulfilment_status")
   private int fulfilment_status;
## getter and setter and ToString
  import org.springframework.data.repository.CrudRepository;

    public interface Bulk_repositoryRepository extends CrudRepository<Bulk_repository, Long> {
          List<Bulk_repository>  findAllByStatusAndCampTypeAndCampStart_dateBetween(int status, int campType,Date campStart_dateStart, Date campStart_dateEnd);
         Bulk_repository findById(long id);
    }
import org.springframework.data.repository.crudepository;
公共接口批量存储库扩展了CRUDEPository{
列出FindAllByStatus和CampTypeAndCampStart\u dateBetween(int状态、int campType、日期campStart\u dateStart、日期campStart\u dateEnd);
批量存储库findById(长id);
}

你的方法是对的,你只是拼错了CampStartDate

import org.springframework.data.repository.CrudRepository;

public interface Bulk_repositoryRepository extends CrudRepository<Bulk_repository, Long> {
      List<Bulk_repository>  findAllByStatusAndCampTypeAndCampStartdateBetween(int status, int campType,Date campStart_dateStart, Date campStart_dateEnd);
     Bulk_repository findById(long id);
}
import org.springframework.data.repository.crudepository;
公共接口批量存储库扩展了CRUDEPository{
列出FindAllByStatus和CampTypeAndCampStartDateBetween(int状态、int campType、日期campStart\u日期开始、日期campStart\u日期结束);
批量存储库findById(长id);
}

你的方法是对的,你只是拼错了CampStartDate

import org.springframework.data.repository.CrudRepository;

public interface Bulk_repositoryRepository extends CrudRepository<Bulk_repository, Long> {
      List<Bulk_repository>  findAllByStatusAndCampTypeAndCampStartdateBetween(int status, int campType,Date campStart_dateStart, Date campStart_dateEnd);
     Bulk_repository findById(long id);
}
import org.springframework.data.repository.crudepository;
公共接口批量存储库扩展了CRUDEPository{
列出FindAllByStatus和CampTypeAndCampStartDateBetween(int状态、int campType、日期campStart\u日期开始、日期campStart\u日期结束);
批量存储库findById(长id);
}

一旦你改变了方法,正如我在评论中建议的那样

在访问数据JPA应用程序中更改方法演示,如下所示

@Bean
public CommandLineRunner demo(Bulk_repositoryRepository repository) {
return (args) -> {          

    Date currentDate = new Date();

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -2);

    Date dateTwoDaysAgo = cal.getTime();


        // fetch customers by Status
        log.info("Customer found with findByStatus('0'):");
        log.info("--------------------------------------------");
        repository. findAllByStatusAndCampTypeAndCampStartDateBetween(1,2,currentDate,dateTwoDaysAgo).forEach(on -> {
            log.info(on.toString());
        });
    };
}

一旦你改变了方法,就像我在评论中建议的那样

在访问数据JPA应用程序中更改方法演示,如下所示

@Bean
public CommandLineRunner demo(Bulk_repositoryRepository repository) {
return (args) -> {          

    Date currentDate = new Date();

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -2);

    Date dateTwoDaysAgo = cal.getTime();


        // fetch customers by Status
        log.info("Customer found with findByStatus('0'):");
        log.info("--------------------------------------------");
        repository. findAllByStatusAndCampTypeAndCampStartDateBetween(1,2,currentDate,dateTwoDaysAgo).forEach(on -> {
            log.info(on.toString());
        });
    };
}

由于您已更改了列,因此存储库中的方法名称将更改为FindAllByStatus和CampTypeAndCampStartDateBetweenAlso,让我们知道您希望以日期形式传递的*日期只是尝试传递以下日期,其中t.Camp_Start_date介于Sysdate-2和Sysdate之间,因为您已更改了列,存储库中的方法名称将更改为FindAllByStatus和CampTypeandCampStartDateBetween,让我们知道您想要传递的*日期作为日期只是尝试传递如下的日期,其中t.Camp_Start_date介于Sysdate-2和Sysdate之间已更正方法名称以查找DallByStatus和CampTypeandCampStartDate between亲爱的,它工作正常,但我的表中的日期格式如2019-10-23好吧:),它只是日期的开始,时区将是您的下一个选择,日期作为数字存储在数据库中,您看到的格式只是一个本地表示,您只需确保将数据库中的数据类型作为日期/时间戳保存,然后您就可以即兴创作,我总是在UTC时区中保留一个日期请注意:更正方法名称以查找DallByStatus和CampTypeAndCampStartDate亲爱的,工作正常,但我的表中的日期格式如2019-10-23:),它刚刚开始关于日期,时区将是您的下一个,日期作为数字存储在数据库中,您看到的格式只是一种本地表示形式,您只需确保将数据库中的数据类型保留为日期/时间戳即可,随后您可以即兴创作,我总是在UTC时区中保留一个日期请注意:是的,但是我调用了我的主类,但是我不知道我在哪里可以创建对象日期是的,但是我调用了我的主类,但是我不知道我在哪里可以创建对象日期