为什么查询会因为 var 而返回错误?
Why is the query returning and error because of the var?
@Repository
public interface StockRepo extends JpaRepository<Stock, Long> {
@Query("SELECT stock " +
"FROM Stock stock " +
"WHERE stock.name = :name AND stock.date = :date AND stock.id != :id")
Optional<Stock> findByStockUpdate(String name, LocalDate date, Long id);
}
因此,使用此存储库,当 运行 应用程序时出现一些错误:
无法解析 属性:名称:com.santanderdevweek.bootcamp.model.Stock [SELECT stock FROM com.santanderdevweek.bootcamp.model.Stock stock WHERE stock.name = :name AND stock.date = :date AND stock.id != :id]
无法解析 属性:名称:com.santanderdevweek.bootcamp.model.Stock [SELECT stock FROM com.santanderdevweek.bootcamp.model.Stock stock WHERE stock.name = :name AND stock.date = :date AND stock.id != :id]
查询验证失败方法 public 摘要 java.util.Optional com.santanderdevweek.bootcamp.repository.StockRepo.findByStockUpdate(java.lang.String,java.time.LocalDate,java.lang.Long)!
在 JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration 上声明的 @EnableJpaRepositories 中定义的 com.santanderdevweek.bootcamp.repository.StockRepo 中定义的名称 'stockRepo' 创建 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException:方法 public 抽象 java.util.Optional com.santanderdevweek.bootcamp.repository.StockRepo.findByStockUpdate(java.lang.String,java.time.LocalDate,java.lang.Long) 的查询验证失败!
都是因为查询(imo),需要帮助(抱歉久了post)。
因为您的实体 class 没有名称为 'name' 的字段,而是 'nameStock'。
在查询中将名称更改为 nameStock。
@Query("SELECT stock " +
"FROM Stock stock " +
"WHERE stock.nameStock = :nameStock AND stock.date = :date AND stock.id != :id")
@Repository
public interface StockRepo extends JpaRepository<Stock, Long> {
@Query("SELECT stock " +
"FROM Stock stock " +
"WHERE stock.name = :name AND stock.date = :date AND stock.id != :id")
Optional<Stock> findByStockUpdate(String name, LocalDate date, Long id);
}
因此,使用此存储库,当 运行 应用程序时出现一些错误:
无法解析 属性:名称:com.santanderdevweek.bootcamp.model.Stock [SELECT stock FROM com.santanderdevweek.bootcamp.model.Stock stock WHERE stock.name = :name AND stock.date = :date AND stock.id != :id]
无法解析 属性:名称:com.santanderdevweek.bootcamp.model.Stock [SELECT stock FROM com.santanderdevweek.bootcamp.model.Stock stock WHERE stock.name = :name AND stock.date = :date AND stock.id != :id]
查询验证失败方法 public 摘要 java.util.Optional com.santanderdevweek.bootcamp.repository.StockRepo.findByStockUpdate(java.lang.String,java.time.LocalDate,java.lang.Long)!
在 JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration 上声明的 @EnableJpaRepositories 中定义的 com.santanderdevweek.bootcamp.repository.StockRepo 中定义的名称 'stockRepo' 创建 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException:方法 public 抽象 java.util.Optional com.santanderdevweek.bootcamp.repository.StockRepo.findByStockUpdate(java.lang.String,java.time.LocalDate,java.lang.Long) 的查询验证失败!
都是因为查询(imo),需要帮助(抱歉久了post)。
因为您的实体 class 没有名称为 'name' 的字段,而是 'nameStock'。
在查询中将名称更改为 nameStock。
@Query("SELECT stock " +
"FROM Stock stock " +
"WHERE stock.nameStock = :nameStock AND stock.date = :date AND stock.id != :id")