是的,可以使用两种数据源,一种是 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 操作时:
利用适当的 repos 来执行。
@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