我有 2 个数据库。第一个是我们公司 ERP 的数据库,第二个是我的应用程序的数据库。
我需要在我的应用程序中使用来自 ERP 数据库的同步客户表数据。现在我每小时用石英作业同步表格。通过这种方式,我有一个本地客户表,并且在我的订单中创建外键列没有问题。
未来,开发新的应用程序,这种策略不会是一个好的解决方案(假设是现在..)。对于以这种方式工作的每个应用程序,我将拥有客户表的本地副本和同步过程。
因此,我正在考虑使用带有远程接口的 spring-remoting 来实现远程支持应用程序,以吸引客户。这个远程应用程序连接到 ERP 数据库,我所有的应用程序都会调用远程服务来获取数据。
现在我的问题是:
这可能是一个好方法还是有更好的方法来实现它?
如何在我的订单中引用客户实体?按照这个解决方案,我不再有本地客户表了。我想我可以在域类中做:
@Entity public class Order{ .... private Integer customerId; @Transient private Customer customer; ... }
并在每次我通过调用远程服务加载 Order 对象时绑定瞬态客户。所以例如在我的 OrderServiceImpl
@Transactional public Order getOrder(Integer id){ Order order = orderDao.get(id); order.setCustomer(customerRemoteService.getCustomerById(order.getCustomerId())); return order; }
我想知道您是否可以给我意见或更好的解决方案!
非常感谢!!!!!马可