Похоже, что все используют аннотации для сохранения данных в настоящее время.Аннотация бесплатное решение для весенних данных
Почему это проблема?
Аннотации к сохранению специфичны для выбранного API персистентности. Если вы используете MySQL, вы используете @Entity, если используете Couchbase, вы должны использовать @Document.
В больших проектах обычно существует слой API, в котором моделируются объекты. Этот уровень имеет или, по крайней мере, не должен иметь никаких зависимостей от какой-либо конкретной базы данных.
public class User implements IUser {
private String email;
private String id;
private String password;
private String username;
Так что здесь нельзя использовать @Document.
Параметр/сохранение уровня базы данных в настоящее время только этот репозиторий весна-данные
public interface IUserRepository extends CrudRepository<IUser, String> {}
и класс по конфигурации
@Configuration
@EnableCouchbaseRepositories
class CouchbaseConfiguration extends AbstractCouchbaseConfiguration {
Я ожидал найти пример конфигурации XML базы, но ничего, аннотации все над.
Как я могу решить эту проблему?
Существует ли подход, основанный на XML для сопоставления объектов?
Если нет, как это можно решить, не загрязняя API-слой?
это скорее похоже на общий вопрос 'spring-data', так как проблема будет такой же, как и в других реализациях магазина, например' spring-data-jpa'? –
Да, эта проблема также затрагивает другие реализации. Если, например, Hibernate можно использовать для баз данных SQL, моделирование может быть выполнено с помощью xml и без аннотаций в уровне API ... – Nabor