当字段名称包含下划线时,findBy抛出错误

时间:2015-02-27 08:48:05

标签: spring spring-data-jpa

我有一个Item类,其名称为vendor_name,如下所示:

@Entity
@Table(name="item_info")
public class Item {
    @Column(name="vendor_name")
    protected String vendor_name;
    /* Getter/Setter methods */

我正在尝试编写一个CRUDRepository接口来返回基于vendor_name的项目:

@Repository
public interface ItemDAO extends CrudRepository<Item, Integer>{
    public Item findByVendor__name(@Param("vendor_name") String vendor_name);
}

根据文档,如果属性名称中有下划线,那么我们需要通过添加额外的下划线来转义findBy方法中的下划线。但是,我仍然收到一条错误消息“没有为类型Item找到名为vendor的属性”。

我无法从属性中删除下划线。还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

来自Spring Data JPA文档:

  

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