Spring jpa findby,附带条件列表
我仍然是java的初学者,这里我尝试使用JPA从mysql数据库获取数据 但是我在使用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
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