Con Micronaut-Данные, tenemos Составленный готовый к использованию/| . Обработка очень похожа на JPA.
Пример таблицы содержит первичный ключ, состоящий из двух полей.
CREATE TABLE "author_detail_entity" ( "author_id" BIGINT NOT NULL, "book_id" BIGINT NOT NULL, PRIMARY KEY("author_id","book_id"));
Мы должны использовать аннотации, предоставленные для этой цели: EmbeddedId , Embeddable .
import io.micronaut.data.annotation.*; @MappedEntity public class AuthorDetailEntity { @EmbeddedId private AuthorDetailId authorDetailId; public AuthorDetailEntity(AuthorDetailId authorDetailId) { this.authorDetailId = authorDetailId; } public AuthorDetailId getAuthorDetailId() { return authorDetailId; } } @Embeddable class AuthorDetailId { @MappedProperty("author_id") private final Long authorId; @MappedProperty("book_id") private final Long bookId; public AuthorDetailId(Long authorId, Long bookId) { this.authorId = authorId; this.bookId = bookId; } public Long getAuthorId() { return authorId; } public Long getBookId() { return bookId; } }
Мы расширяем интерфейс, чтобы получить реактивный CRUD.
@R2dbcRepository(dialect = Dialect.POSTGRES) public interface AuthorDetailRepository extends ReactiveStreamsCrudRepository{ }
Алгунос методос провистос сын найти* , |/удалить* и т.д.
https://micronaut-projects.github.io/micronaut-data/lates/guide/#sqlCompositeId https://gitlab.com/edgar.gs/mn-r2dbc.git
Оригинал: “https://dev.to/e240683/pk-compuesta-con-micronaut-r2dbc-26c1”