java - 我必须在 Spring boot 中使用 POST 方法(Restfull)从 MySQL Db 表中搜索 where 子句中的多个参数?

标签 java mysql spring spring-boot spring-data-jpa

MySQL 数据库表:

enter image description here

类如下:问题是如何处理crud存储库中的对象,因为那里没有这样的现有功能。那么如何覆盖现有的。

@RequestMapping(value = "/find", method = RequestMethod.POST)
@ResponseBody
public User getUser(@RequestBody  UserFormDto userForm) {
    Holder h = new Holder();
    h.setName(userForm.getName());
    h.setEmail(userForm.getEmail());
    return userRepository.findOne(h);//holder);

}


package hello;
public class Holder {   
private String name;
private String email;

public class Holder {   
private String name;
private String email;

public Holder(){

}
public Holder(String name, String email) {
    super();
    this.name = name;
    this.email = email;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getEmail() {
    return email;
}
public void setEmail(String email) {
    this.email = email;
}}

UserFormDto 将数据传递给 Holder。

package hello;
import javax.validation.constraints.Min;
import javax.validation.constraints.Pattern; 
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;


public class UserFormDto {
private String name;
private String email;

public UserFormDto(String name, String email) {
    super();
    this.name = name;
    this.email = email;
}

public UserFormDto() {
    super();
    // TODO Auto-generated constructor stub
}


public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getEmail() {
    return email;
}
public void setEmail(String email) {
    this.email = email;
}}



  package hello;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
public interface UserRepository extends CrudRepository<User, Long> {
//  User findOne(Holder h);}

现在我应该如何使用 crudRepository?任何帮助将不胜感激。

最佳答案

Spring Data 支持根据 CrudRepository 中的方法名自动构建查询(参见 Query Creation )

向它添加一个 findByIdAndEmail 方法,它应该可以工作(请注意,我没有看到同时搜索 id 和另一个字段的意义,除非你的 id 不是PK):

public interface UserRepository extends CrudRepository<User, Long> {

    List<User> findByIdAndEmail(Long id, String email);

}

关于java - 我必须在 Spring boot 中使用 POST 方法(Restfull)从 MySQL Db 表中搜索 where 子句中的多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45160108/

相关文章:

mysql - SQL 查询和 SELECT

java - Maven - maven-war-plugin 更改目标目录(webapp 除外)

java - 使用 @OneToMany 或 @ManyToMany 定位未映射的类

java - 在java中查找奇数

java - 使用 GSON 和 Retrofit 时反序列化内部类

java - 使用 Logback RollingFileAppender 时,有没有办法使用默认的 Spring Boot "/actuator/logfile"端点?

java - PollableChannel 和 DirectChannel 有什么区别?

java - 如何通过 RServe 将浮点/ double 组作为 vector 从 JAVA 发送到 R

mysql - mysql 子查询失败

mysql - 浮点值超出范围