Столкновение между методами count () - CrudRepository - Spring - PullRequest
0 голосов
/ 04 мая 2018

Я предпочитаю предупредить вас, мой английский не идеален, но я постараюсь сделать все возможное.

Я на самом деле на стажировке, и моя задача - создать веб-сервис. До этого я должен был работать с 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 расширяет его, но счетчик методов отсутствует.

EDIT

Так что я думаю, что решил проблему: Вместо расширения моего интерфейса до CrudRepository я расширил его до Repository. Дело в том, что я не знаю, могу ли я использовать те же методы, что и в CrudRepository, могу ли я?

1 Ответ

0 голосов
/ 04 мая 2018

Вам необходимо вернуть тип "Long".

@Override
Long count();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...