count()方法之间的冲突 - CrudRepository - Spring

时间:2018-05-04 14:52:15

标签: java spring maven repository

我更愿意警告你,我的英语并不完美,但我会努力做到最好。

我实际上是在实习期间,我的任务是创建一个网络服务。在此之前,我应该与Maven合作并创建存储库,模型和其他。

目前,我遇到了一个简单Java类的存储库问题。

这是我的班级:

package com.XXX;

import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.sql.Timestamp;

@Entity
//Generate getters and setters
@Data
//Generate a constructor with to arguments
@NoArgsConstructor
public class Day_ {
    @Id
    private int day_id_Date;
    private Timestamp day_Date;

    public Day_(int day_id_Date, Timestamp day_Date) {
        this.day_id_Date = day_id_Date;
        this.day_Date = day_Date;
    }
}

我说的很简单。

现在来到我的存储库:

package com.XXX;

import com.XXX.Day_;
import org.springframework.data.repository.CrudRepository;

public interface DayRepository extends CrudRepository<Day_, Long> {
}

我实际上从互联网上的一个例子中得到了这个。对他来说很好但不适合我。我收到以下错误:

    Error:(6, 8) java: types org.springframework.data.repository.Repository<com.atos.test.account.tables.Day_,java.lang.Long> and org.springframework.data.repository.CrudRepository<com.atos.test.account.tables.Day_,java.lang.Long> are incompatible; both define count(), but with unrelated return types

现在我尝试通过执行以下操作覆盖count()方法:

package com.XXX;

import com.XXX.Day_;
import org.springframework.data.repository.CrudRepository;

public interface DayRepository extends CrudRepository<Day_, Long> {
    @Override
    long count();
}

但我得到以下错误(几乎相同):

    Error:(6, 8) java: types org.springframework.data.repository.CrudRepository<com.atos.test.account.tables.Day_,java.lang.Long> andorg.springframework.data.repository.Repository<com.atos.test.account.tables.Day_,java.lang.Long> are incompatible; both define count(), but with unrelated return types

    Error:(9, 10) java: count() in com.atos.test.account.repository.DayRepository clashes with count() in org.springframework.data.repository.Repository return type long is not compatible with java.lang.Long

我已查看了CrudRepository类,但方法count()与我尝试过的方法相同。我还查看了Repository类,因为CrudRepository扩展了它,但没有方法计数。

修改

所以我认为我已经解决了这个问题: 我没有将界面扩展到CrudRepository,而是将其扩展为Repository。问题是我不知道我是否可以在CrudRepository中使用相同的方法,可以吗?

1 个答案:

答案 0 :(得分:0)

您需要返回类型&#34; Long&#34;。

@Override
Long count();