ORM Framework для реактивных приложений - PullRequest
0 голосов
/ 19 января 2019

Я искал spring-data-r2dbc для реактивного доступа к БД. Но, похоже, он не обеспечивает поддержку ORM, как указано на странице проекта, это не платформа ORM. Какие варианты существуют или планируются для поддержки ORM в реактивных приложениях? На сегодняшний день, каков наилучший способ указать имя столбца для поля (@Column в JPA), использовать иерархии классов (@MappedSuperclass в JPA) и, что самое важное, объединяться при использовании spring-data-r2dbc

1 Ответ

0 голосов
/ 21 января 2019

Вы правы, что spring-data-r2dbc не является ORM.Он не отображает отношения в вашей базе данных.Что он может сделать, так это сопоставить строки вашей базы данных с объектами.Следующий образец фрагмента сопоставляется со строкой базы данных ниже:

Пример класса в Kotlin:

@Table("song")
class SongRow(
    @Id val id: Long, 
    val name: String, 
    val artist: Long
)

Строка:

create table song(
    id integer identity primary key,
    artist integer references artist(id),
    name varchar(100) NOT NULL,
);

Для автоматического получения столбцовдля вашей модели см .: https://docs.spring.io/spring-data/r2dbc/docs/1.0.0.M1/reference/html/#mapping-usage

Также по ссылке выше указано, что вы можете использовать @ Column.

Что касается одного из ваших вопросов:

Какие варианты существуют или планируются для поддержки ORM в реактивных приложениях?Я понятия не имею,

Что касается:

объединений при использовании spring-data-r2dbc

Используя аннотацию @Query, вы можете выполнитьприсоединяется.Если вы хотите отобразить данные, полученные с помощью объединений, лучше использовать DatabseClient (см. https://docs.spring.io/spring-data/r2dbc/docs/1.0.0.M1/reference/html/#r2dbc.datbaseclient)

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