2010-09-08 43 views
2

我想了解一些没有正确记录的项目的代码。只有开发人员在任务上工作。我没有太多的经验。 有一个数据模型,有一些类可以访问它。有人提到数据模型在它的顶部有一些休息API。但是当我看到代码时,我可以看到gette r代码,它使得一些休息呼叫一些uri。 但我看setter它有平原jpa用于persisit对象的方法。 ex extitymanger.persist(objname).REST和JAVA JPA

现在有可能使用REST接口获取数据并使用JPA来存储数据吗?

回答

1

是的,这是可能的。不知道更多,它是不可能知道它是否有效。我的直觉告诉我这不是最好的解决方案。

+0

。他们为什么一定要这样做? – akp 2010-09-08 16:40:09

+1

很多时候,不择手段的工程师会测试新技术,只能在中点换一些东西。这可能会导致其他人支持的混乱。当需求或业务价值发生变化时,他们也有可能处于重构阶段。 – 2010-09-08 20:30:24

0

这绝对有可能。这听起来像访问类正在抽象数据库存储。因此,它的行为像DAO并使用JPA来访问数据源。对于获得者,您的访问类正在使用某个服务提供的公开REST接口。因此,不是使用JPA查询和返回数据,而是使用执行相同任务的服务。

也许REST接口只是一个get,并没有提供存储数据的机制,这就是为什么使用直接JPA。

+0

感谢您回复john.Can你可以告诉我为什么他们可以这样做?为什么不直接使用JPA来获取数据呢? – akp 2010-09-08 16:39:40

+1

可能有多种原因,但我猜想可能查询代码很复杂,已经作为服务的一部分存在,他们不想复制它。 REST接口可能由JPA代码访问的相同数据库支持。这里有特别的问题吗?从你的代码的角度来看,你正在使用已经存在的访问器类,因此它们应该如何实现get/set方法并不重要。 – 2010-09-08 16:41:50

+0

谢谢约翰。你有什么更多的投入吗?感谢jacob,这对我很有帮助 – akp 2010-09-08 16:43:23

0

我觉得做的最好的事情就是忘记试着制定个别的代码段并专注于此大的图片。计算出所有的输入和所有的输出。甚至编写一些测试用例来测试各种输入来创建各种输出。

通过这种方式,您可以理解代码的作用,而无需知道所有小调小节。