方法中的Spring Data查询无法识别列

时间:2014-01-27 16:18:55

标签: hibernate spring-data

我正在使用Spring Data,我创建了包含在“AbstractEntity”中的实体,所有对象都扩展为获取基本列

AbstractEntity:

@MappedSuperclass
public abstract class AbstractEntity implements Serializable{

    @Temporal(TemporalType.TIMESTAMP)
    @Column(nullable = false)
    private Date CreatedDate;

    @PrePersist
    protected void onCreate() {
        UpdatedDate = CreatedDate = new Date();
    }

...

我的对象/实体

@Entity
public class Trade extends AbstractEntity {

当我尝试使用我的存储库创建findByCreatedDateAfter(Date date)

的方法时

我得到一个例外,即无法找到该列......?

public interface TradeRepository extends CrudRepository<Trade, Long>{

    public List<Trade> findByCreatedDateAfter(Date date);
}

它编译(如果我使用某些capitolization)但是试图映射查询,我得到:

Caused by: java.lang.IllegalArgumentException: Unable to locate Attribute  with the the given name [createdDate] on this ManagedType [streaming.data.AbstractEntity]

我还想返回此期间金额列之一的sum(amount)

1 个答案:

答案 0 :(得分:10)

查询派生机制要求应用标准Java属性命名约定。没有属性createdDate,因为它在您的班级中称为CreatedDate

要自定义到某个列的映射,请使用@Column注释(因此命名)。