Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Spring jpa findby,附带条件列表_Spring_Hibernate_Spring Boot_Jpa - Fatal编程技术网

Spring jpa findby,附带条件列表

Spring jpa findby,附带条件列表,spring,hibernate,spring-boot,jpa,Spring,Hibernate,Spring Boot,Jpa,我仍然是java的初学者,这里我尝试使用JPA从mysql数据库获取数据 但是我在使用findby函数设置条件列表时遇到了一个问题。 我可以设置日期对象,即使它拒绝输入 下面是我的代码供参考 我的查询: 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 an

我仍然是java的初学者,这里我尝试使用JPA从mysql数据库获取数据

但是我在使用findby函数设置条件列表时遇到了一个问题。 我可以设置日期对象,即使它拒绝输入 下面是我的代码供参考

我的查询:

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());
            });
        };
    }
大容量存储库存储库类:

    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);
    } 
这样,

使用额外的下划线来转义

List<Bulk_repository>  findAllByStatusAndCamp__typeAndCamp__start__dateBetween(int status, int camp_type,Date camp_start_dateStart, Date camp_start_dateEnd);
这样,

使用额外的下划线来转义

List<Bulk_repository>  findAllByStatusAndCamp__typeAndCamp__start__dateBetween(int status, int camp_type,Date camp_start_dateStart, Date camp_start_dateEnd);


只是一个建议,从类名和变量名中删除下划线(_),这不是java标准,而且它将使您在JPAi中的生活更轻松。虽然删除了所需变量的下划线,但我仍然在如何定义数据对象方面遇到麻烦,抱歉,我还是一个12岁的孩子:请回答你的问题,并用最新版本修改你的批量存储库。我猜你已经按照@dasunse的建议接受了答案,创建了一个新的问题,并在评论中添加了一个引用。我问了另一个问题只是一个建议,从类名和变量名中删除下划线(u),这不是java标准,而且它将使您在JPAi中的生活变得轻松。虽然删除了所需变量上的下划线,但我仍然无法定义数据对象,对不起,我还是个12岁的孩子:请回答您的问题,并用最新版本修改您的批量存储库。我想您已经接受了@dasunse建议的答案,创建一个新的问题,并在这里的评论中添加一个参考。One,我已经问了另一个问题。谢谢你,它工作得很好,但是现在我知道我必须创建日期对象来与我的查询保持一致,你能告诉我怎么做吗?你能解释更多。。您是否对这种类型的场景感兴趣@查询(“从大容量存储库b中选择b.msisdn,其中b.status=?1”)列表getBylkRepositoryByStatus(int status);你是在问地位是如何过去的吗。。。是这种类型的场景吗?我只是想表示上面的查询,我已经用查询更新了我的问题,但是我遇到了关于如何设置日期的问题object@yongshi最好问一个新问题。再次查看此问题的人可能会混淆问题和答案。因为您提出了一个经过编辑的问题,而答案可能是针对您的前一个问题。您可以使用QueryDSL、Specification、CriteriaQuerythank来代替这么长的方法名,因为它工作得很好,但是现在我了解到我必须创建日期对象来与我的查询保持一致,您可以告诉我如何进行吗?请您解释更多。。您是否对这种类型的场景感兴趣@查询(“从大容量存储库b中选择b.msisdn,其中b.status=?1”)列表getBylkRepositoryByStatus(int status);你是在问地位是如何过去的吗。。。是这种类型的场景吗?我只是想表示上面的查询,我已经用查询更新了我的问题,但是我遇到了关于如何设置日期的问题object@yongshi最好问一个新问题。再次查看此问题的人可能会混淆问题和答案。因为您提出了一个经过编辑的问题,而答案可能是针对上一个问题。您可以使用QueryDSL、Specification、CriteriaQuery,而不是给出这么长的方法名
@Column(name = "camp_start_date")   
private Date campStartDate; // better to use this way