Team
Я создаю приложение с пружинной загрузкой, которое может поддерживать несколько БД Cassandra, CouchDB или DynamoDB на основе конфигурации в application.yml.
Мой класс сущности содержит аннотации, которыеспецифичны для Cassandra, а аннотации для DynamoDB разные. Например,У DynamoDB есть @DynamoDBTable для таблицы, а у Кассандры есть аннотации @ org.springframework.data.cassandra.core.mapping.Table.
Проблема в том, что я хотел бы использовать один объект сущности независимо от типа БД, потому чтосущность упоминается из нескольких мест в приложении. Каков наилучший шаблон проектирования для реализации этого?
Для Кассандры -
package com.abc;
@Table("Cart")
public class Cart {
@PrimaryKeyColumn(ordinal = 0, type = PrimaryKeyType.PARTITIONED)
@GeneratedValue(strategy = GenerationType.AUTO)
protected String id;
@PrimaryKeyColumn(ordinal = 1, type = PrimaryKeyType.PARTITIONED)
private String userId;
@PrimaryKeyColumn(ordinal = 2, type = PrimaryKeyType.CLUSTERED, ordering = Ordering.DESCENDING)
private String skuId;
Для DynamoDB -
@DynamoDBTable(tableName = "Cart")
public class Cart {
@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
protected String id;
private String userId;
private String skuId;
Спасибо АА