Spring data объединяет сущность mysql с коллекцией mongodb

Я делаю проект с весенними данными. У меня есть две таблицы в моей схеме:

  • Ху
  • Движение: эта таблица должна содержать каждое движение Ху. В производстве эта таблица будет иметь много записей, поэтому я буду помещать данные о движении в базу данных mongodb.

Я читал, что можно использовать больше источников данных. Но можно ли использовать источник данных mysql и источник данных mongodb? Если да, можно ли связать HU с движением (объединение)? Коллекция движений имеет столбец hu_id.

1 ответ

Да, можно использовать два источника данных: один - SQL, а другой - NOSQL.

Но я чувствую, что связь между двумя объектами невозможна и звучит неправильно.

Во всяком случае, я попробовал этот подход, где

Entity1.java:(сущность SQL)

@Entity
@Table(name="ENTITY1")
public class Entity1 implements Serializable{   

    @Id
    private long id;
}

Entity2.java: (сущность NOSQL)

@Document(collection="test")

public class Entity2  implements Serializable{

    @org.springframework.data.annotation.Id
    private long Id;

    //storing reference of entity1 
    @Field("Entity1REF")
    private long entity1Id;

}

Entity1Repository:

public interface Entity1Repository extends JpaRepository<Entity1, Long> ()

Entity2Repository:

public interface Entity2Repository extends MongoRepository<Entity2, Long>{

При выполнении CRUD-операций над объектом:

Используйте соответствующие репо для выполнения.

    @Autowired
    private Entity1Repository entity1Rep;

    @Autowired
    private Entity2Repository entity2Rep;



       public void init(){
            Entity1 en1=new Entity1(100);
            en1=entity1Rep.save(en1);
            Entity2 en2=new Entity2(1000,en1.getId());
            entity2Rep.save(en2);
}

Пожалуйста, пройдите этот проект и попробуйте: https://github.com/BarathArivazhagan/Spring-MongoDB-Samples/tree/tree/Spring-Data-Mongo-SQL

Другие вопросы по тегам