У меня есть quizRepository
, в котором хранятся все тесты, созданные в моем приложении.
Я создал хранилище класса QuizDetails
и вызываю встроенный findAll()
метод JpaRepository
.
Но я получаю один и тот же объект, возвращаемый несколько раз в виде списка. Список содержит то же количество объектов, что и в строках таблицы. Но в JPA все объекты одинаковы.
Модель класса:
@Getter
@Setter
@Entity
@Component
@Scope("prototype")
public class QuizDetails {
@Id
@Column(name="quiz_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Embedded
private FormattedQuizBean questions;
@ManyToOne
private LoginAttribute quizMaster;
}
Интерфейс репозитория:
@Repository
public interface QuizDetailRepository extends JpaRepository<QuizDetails, Long>{
}
Класс контроллера:
@GetMapping("/master/all-quiz")
public String listQuizzesByMaster(ModelMap model, Principal principal){
List<QuizDetails> quizDetails= quizDetailRepository.findAll();
log.debug("Quizzes: "+quizDetails.toString());
return "master/allquiz";
}
Выход:
Quizzes: [com.DevSting.QuizPortal.Model.QuizDetails@19ffa0f0, com.DevSting.QuizPortal.Model.QuizDetails@19ffa0f0, com.DevSting.QuizPortal.Model.QuizDetails@19ffa0f0, com.DevSting.QuizPortal.Model.QuizDetails@19ffa0f0]
Как видно из вывода, я получаю один и тот же хэш-код объекта, возвращаемый несколько раз, даже когда я пытаюсь напечатать отдельное поле, он печатает первую строку несколько раз. Количество строк в моей базе данных равно количеству созданных одинаковых объектов.