findAllBy JPA со встроенным идентификатором

У меня есть это Document спящий JPA сущность с EmbeddedId:

@Entity
data class Document(
        @EmbeddedId
        @NotNull
        val documentExpertId: DocumentExpertId,
        // other fields
)

@Embeddable
data class DocumentExpertId(

        @Column(nullable = false)
        val expertId: String,

        @Column(nullable = false)
        val name: String

) : Serializable

Чтобы получить все документы по expertIdЯ хотел бы, чтобы мой метод интерфейса JPA хранилища документов назывался:

fun findAllByExpertId(String expertId): List<Document>

Но единственный способ сделать это:

fun findAllByDocumentExpertIdExpertId(String expertId): List<Document>

Есть ли другой способ получить лучшее имя для этого метода?

1 ответ

Вы можете изменить идентификатор и определение столбца на:

    @EmbeddedId
    @NotNull
    val documentExpertKey: DocumentExpertKey,

    @Column(name = "expertId", nullable = false)
    val id: String,

Чтобы ваш запрос мог быть:

    fun findAllByDocumentExpertKeyId(String expertId): List<Document>

Это выглядит немного более нормально для меня.

Другие вопросы по тегам