JPA получает наибольшее значение в столбце с условиемJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JPA получает наибольшее значение в столбце с условием

Сообщение Anonymous »

Я использую JpaRepository для доступа к таблице в моей базе данных. Я определил таблицу через сущность. Моя цель — получить наибольшее значение в столбце wordNumber. Но мне также приходится различать записи по столбцу LanguageId. Это означает, что мне нужен метод в моем репозитории, который получает параметр, который я могу использовать в своем запросе.
В настоящее время мой метод репозитория выглядит так:

Код: Выделить всё

public interface WordRepository extends JpaRepository
{
@Query(value = "SELECT MAX(wordNumber) FROM Word WHERE languageId = :languageId")
Optional getHighestId(@Param("languageId") Long languageId);
}
И объект выглядит так:

Код: Выделить всё

@Data
@Entity
@IdClass(Word.WordId.class)
@Table(name = "WORD")
public class Word
{
@Id
private Long languageId;
@Id
private Long wordNumber;

private String letters;

@AllArgsConstructor
public class WordId implements Serializable
{
public Long languageId;
public Long wordNumber;

@Override
public boolean equals(Object o)
{
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
WordId wordId = (WordId) o;
return Objects.equals(languageId, wordId.languageId) && Objects.equals(wordNumber, wordId.wordNumber);
}

@Override
public int hashCode()
{
return Objects.hash(languageId, wordNumber);
}
}
}
Когда я вызываю метод в репозитории с языковым идентификатором = 0 и настраиваю трассировку журнала hibernate-sql, полученный SQL-запрос имеет следующий вид:

Код: Выделить всё

 select max(w1_0.word_number) from word w1_0 where w1_0.language_id=?
И тут же выдается эта ошибка:

Код: Выделить всё

org.hibernate.InstantiationException: Unable to locate constructor for embeddable 'io.fi0x.languagegenerator.db.entities.Word$WordId'
Как мне настроить sql, чтобы он работал? Или что-то в моей сущности не так?

Подробнее здесь: https://stackoverflow.com/questions/787 ... -condition
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»