Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring JPA存储库无法解析实体的属性_Spring_Hibernate_Spring Data Jpa_Repository - Fatal编程技术网

Spring JPA存储库无法解析实体的属性

Spring JPA存储库无法解析实体的属性,spring,hibernate,spring-data-jpa,repository,Spring,Hibernate,Spring Data Jpa,Repository,我正在尝试对一个表的两列进行简单搜索 我的客户实体类snipet: @Entity @Table(name = "CUSTOMER") public class Customer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "CUSTOMER_ID", nullable = false) private int custo

我正在尝试对一个表的两列进行简单搜索

我的客户实体类snipet:

@Entity
@Table(name = "CUSTOMER")
public class Customer {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "CUSTOMER_ID", nullable = false)
    private int customer_id;

    @Column(name = "FIRST_NAME", nullable = false)
    private String first_name;

    @Column(name = "LAST_NAME", nullable = false)
    private String last_name;

    @Column(name = "PHONE_NUMBER", nullable = false)
    private String phone_number;

    @Column(name = "EMAIL")
    private String email;
@Repository
public interface CustomerRepository extends JpaRepository<Customer, Integer> {

    List<Customer> findAllByFirst_nameAndLast_name(String firstName, String lastname);

}
我的客户存储类snipet:

@Entity
@Table(name = "CUSTOMER")
public class Customer {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "CUSTOMER_ID", nullable = false)
    private int customer_id;

    @Column(name = "FIRST_NAME", nullable = false)
    private String first_name;

    @Column(name = "LAST_NAME", nullable = false)
    private String last_name;

    @Column(name = "PHONE_NUMBER", nullable = false)
    private String phone_number;

    @Column(name = "EMAIL")
    private String email;
@Repository
public interface CustomerRepository extends JpaRepository<Customer, Integer> {

    List<Customer> findAllByFirst_nameAndLast_name(String firstName, String lastname);

}

因此,它无法检测customer对象中的字段,我是否应该以某种方式将customer类导入到存储库中?

我建议按照标准将属性保存在camel案例中

因为我们将下划线字符视为保留字符,所以强烈建议遵循标准Java命名约定(即,不要在属性名称中使用下划线,而是使用驼峰大小写)

然后查询以及根据

列出findallbyfirstname和lastname(字符串firstName,字符串lastname);

问题在于您的snake\u案例命名约定,建议使用camelCase命名约定

正如春季文档所说:

因为我们将下划线字符视为保留字符,所以 强烈建议遵循标准Java命名约定(即, 在属性名称中不使用下划线,而是使用大小写)


您可以看到一个相关的JIRA问题——属性名中不支持下划线。

Spring JPA的整个要点是使用存储库中定义的方法简化查询构建。约定是在实体中使用camelCase命名字段,在编写查询方法时使用camelCase命名字段。只要将实体字段的命名从snake-case改为camel-case,就可以了

List<Customer> findAllByFirstNameAndLastName(String firstName, String lastname);