我正在评估当前项目的跨存储设计,我们正在考虑同时使用MySQL和MongoDB。
独立地说,每个产品的弹簧支撑都非常好。然而,跨店支持似乎有点流血。
在阅读了文档后,我留下了几个问题:
doucmentation谈到了对JPA实体的跨存储支持,该实体包含一个持久化为@Document
的属性。是否存在反其道而行之的支持?Ie.,我可以有一个MongoDB文档作为父文档,它包含对JPA实体(或实体集合)的引用吗?
例如:
@Document
public class Product
{
@Entity?
private Manufacturer manufacturer;
@CollectionOfEntities?
private List<Review> reviews
}
同样,是否支持持久化包含Docuemnts集合的JPA实体?
例如:
@Entity
public class Shop
{
@Id
private Long id;
// Product is a MongoDB @Document
private List<Product> products;
}
是否支持此功能?
考虑到跨存储持久性是如此新鲜,是否有任何资源可以用于设计最佳实践或避免陷阱?
我不确定交叉存储。但是,EclipseLink(自2.4起)支持MySQL和MongoDB的JPA,并且确实支持复合持久性单元,允许跨持久性单元的关系。