gpt4 book ai didi

spring-boot - 如何使用下划线变量解决 Spring Boot findBy 方法

转载 作者:行者123 更新时间:2023-12-03 20:53:07 30 4
gpt4 key购买 nike

当我运行下面的项目时,我收到以下错误。我该如何解决?

Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract com.example.pharmanic.model.Rdhs_Hospital_Current_Stock com.example.pharmanic.repositories.Rdhs_Hospital_Current_StockRepository.findBysr_no(java.lang.String)! No property sr found for type Rdhs_Hospital_Current_Stock!



这是我的 Rdhs_Hospital_Current_Stock模型类。
@Entity
@Data
@Table(name = "Rdhs_Hospital_Current_Stock")
public class Rdhs_Hospital_Current_Stock {
@Id
private Long batchId;
private int quantity;
private String expiredate;

@ManyToOne
private Hospital_By_Rdhs hospital_by_rdhs;


@ManyToOne
@JoinColumn(name = "sr_no", nullable = false, referencedColumnName = "sr_no")
private Medicine medicine;


}
sr_noMedicine 的外键 table 。

这是我的 Medicine实体:
@Data
@Entity
public class Medicine {
private @Id String sr_no;

private String name;
private String side_effect;
private String description;

public Medicine() {
}

public Medicine(String sr_no, String name, String side_effect, String description) {
this.sr_no = sr_no;
this.name = name;
this.side_effect = side_effect;
this.description = description;
}
}

当我使用 sr_no和我的 findBy()功能:
 @GetMapping("/rhstock/{id}")
ResponseEntity<?> getMedicine(@PathVariable String id){
Optional<Rdhs_Hospital_Current_Stock> rdhs_hospital_current_stock = Optional.ofNullable(rdhs_hospital_current_stockRepository.findBysr_no(id));
return rdhs_hospital_current_stock.map(response->ResponseEntity.ok().body(response)).orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND));
}

这是我的存储库:
public interface Rdhs_Hospital_Current_StockRepository extends JpaRepository<Rdhs_Hospital_Current_Stock,Long> {
Rdhs_Hospital_Current_Stock findBysr_no(String id);

}

最佳答案

灵感来自:Spring-Data-Jpa Repository - Underscore on Entity Column Name

下划线 _ 是 Spring Data 查询派生中的保留字符(有关详细信息,请参阅 reference docs)可能允许手动属性路径描述。

  • 坚持使用 camel-case 作为成员变量名称的 Java 命名约定,一切都会按预期工作。
  • sr_no 更改为 srNo

  • Update repository function

    Rdhs_Hospital_Current_Stock findBymedicine_srNo(String id);

    关于spring-boot - 如何使用下划线变量解决 Spring Boot findBy 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61984482/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com