【发布时间】:2016-12-05 21:33:32
【问题描述】:
现在似乎每个人都使用注释来持久化数据。
为什么会出现这个问题?
持久性注释特定于所选持久性 API。如果使用 MySQL,则使用 @Entity;如果使用 Couchbase,则必须使用 @Document。
在较大的项目中,通常有一个 API 层用于对对象进行建模。该层具有或至少不应该具有对任何特定于数据库的任何依赖项。
public class User implements IUser {
private String email;
private String id;
private String password;
private String username;
所以这里不能使用@Document。
数据库/持久层目前只有这个spring-data repository
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 层中的注释...
标签: java orm spring-data-couchbase