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