Hibernate 微服务设计中ORM实体的封装
我想建立一个微服务架构。我正在使用Java技术,如Spring、Hibernate等。在这个场景中,我将实体作为Java类。例如,一个微服务有一个实体,B个微服务有B个实体,依此类推。所以,如果a和B之间存在一对多关系,我需要将其中一个类导入到另一个类中来声明它Hibernate 微服务设计中ORM实体的封装,hibernate,entity,microservices,Hibernate,Entity,Microservices,我想建立一个微服务架构。我正在使用Java技术,如Spring、Hibernate等。在这个场景中,我将实体作为Java类。例如,一个微服务有一个实体,B个微服务有B个实体,依此类推。所以,如果a和B之间存在一对多关系,我需要将其中一个类导入到另一个类中来声明它 // in A microservice // need to import class of B like "import com.project.B", but can't // because, it is different p
// in A microservice
// need to import class of B like "import com.project.B", but can't
// because, it is different project.
@Entity
class A{
@OneToMany
B b;
}
//in B microservice
@Entity
class B{
}
然而,由于微服务的设计,它们都在不同的包或服务中。我是否应该创建另一个项目作为共享库,包括其中的所有实体,然后包含在每个微服务中?你有其他的解决方案吗,还是这是一个解决方案?经过长期研究,我找到了解决方案。我正在分享这些链接,以帮助其他人稍后查看此问题 基本上,我们需要为外键添加一列。对于我正在讨论的示例,我们需要添加b_id而不是b object。然后我们设置B的id。当我们需要B时,我们将使用该id获取它
经过长期研究,我找到了解决办法。我正在分享这些链接,以帮助其他人稍后查看此问题 基本上,我们需要为外键添加一列。对于我正在讨论的示例,我们需要添加b_id而不是b object。然后我们设置B的id。当我们需要B时,我们将使用该id获取它
我在这里也面临同样的问题,那么您如何控制一致性呢?在模型中为外键ID设置一个字段似乎不太正确..我也有同样的感觉。然而,这似乎是一个合适的解决方案。为了一致性,使用RabbitMQ这样的消息代理可能是一个好的解决方案。您可以看看这个。有趣的阅读,因此您不应该将外键属性作为b_id,而应该与类a有关系,可能没有完全实现,并确保它与发布订阅事件队列的一致性。。谢谢@Ugurcan!我在这里也面临同样的问题,那么您如何控制一致性呢?在模型中为外键ID设置一个字段似乎不太正确..我也有同样的感觉。然而,这似乎是一个合适的解决方案。为了一致性,使用RabbitMQ这样的消息代理可能是一个好的解决方案。您可以看看这个。有趣的阅读,因此您不应该将外键属性作为b_id,而应该与类a有关系,可能没有完全实现,并确保它与发布订阅事件队列的一致性。。谢谢@Ugurcan!