在 MySQL 中搜索

Searching in MySQL

我正在尝试在我的 Spring 存储库中创建一个函数来搜索检查条件条件的元素:

@Query(value = "select *from `trash_can_response` WHERE temperature=:'21' OR distance=:'24' OR humidity=:'82' ", nativeQuery = true)
    public TrashCanResponse notif(); 

这是我的数据示例:

{
    "id": 42,
    "humidity": 82,
    "distance": 23,
    "temperature": 21
  },
  {
    "id": 43,
    "humidity": 82,
    "distance": 23,
    "temperature": 21
  },
  {
    "id": 44,
    "humidity": 82,
    "distance": 23,
    "temperature": 21
  },
  {
    "id": 45,
    "humidity": 82,
    "distance": 24,
    "temperature": 21
  },
  {
    "id": 46,
    "humidity": 82,
    "distance": 23,
    "temperature": 21
  },
  {
    "id": 47,
    "humidity": 82,
    "distance": 23,
    "temperature": 21
  },

  {
    "id": 50,
    "humidity": 82,
    "distance": 23,
    "temperature": 21
  },
  {
    "id": 51,
    "humidity": 82,
    "distance": 23,
    "temperature": 21
  },
 
  {
    "id": 54,
    "humidity": 82,
    "distance": 23,
    "temperature": 21
  },

我想要函数 notif() 到 return 谁得到 temperature=21 OR humidity =21 OR distance =24 ;

我知道我的查询代码有误,你能帮我改正吗?


我正在使用 JPA:

@Entity
@Table(name = "TrashCanResponse")
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value = { "createdAt", "updatedAt" }, allowGetters = true)

@EnableJpaAuditing
public class TrashCanResponse {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotBlank
    private Integer humidity;
    
    @Column(unique=true)
    @NotBlank
    private Integer distance;

    @NotBlank
    private Integer temperature;

   

    @Column(updatable = false)
    @CreationTimestamp
    private LocalDateTime createdAt;
    @UpdateTimestamp
    private LocalDateTime updatedAt;

    

    public TrashCanResponse() {
    }

    public Integer getTemperature() {
        return temperature;
    }

    public void setTemperature(Integer temperature) {
        this.temperature = temperature;
    }

    public TrashCanResponse(Integer temperature, Integer humidity, Integer distance) {
             this.setTemperature(temperature);
            this.distance=distance;
            this.humidity=humidity;
            
    }

        // Getters and Setters

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }



    public Integer getHumidity() {
        return humidity;
    }

    public void setHumidity(Integer humidity) {
        this.humidity = humidity;
    }

    public Integer getDistance() {
        return distance;
    }

    public void setDistance(Integer distance) {
        this.distance = distance;
    }

  

 
    
}

一切都很好,只是我想搜索检查我的条件的特定行,因为我在查询中很糟糕..

您的方法应该有一些 return 类型。
您可以使用 @Query,如下所示,而不使用 nativeQuery

@Query(value = "select TCR from TrashCanResponse TCR WHERE TCR .temperature=21 OR TCR .distance=24 OR TCR .humidity=82 ")
public List<TrashCanResponse> TrashCanResponse notif();