在 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();
我正在尝试在我的 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();