多少数据对象层是一个好的实践?

发布于 2024-10-25 22:32:30 字数 320 浏览 5 评论 0原文

我们有一个中型 Java 服务器,其数据按以下方式流动:

SQL 数据库 ->数据层->业务层-> XML 序列化

值得注意的是,数据模型在各层之间大多不会改变。然而我被告知,将单一数据模型用作: SQL 数据库 -- (IBATIS) -->型号->将模型转换为 XML - 不是一个好主意,因为模式更改意味着模型中的更改,然后应用程序中所有层的更改。 XML 的变化也意味着模型必须改变。

那么在这种情况下是否建议有两个对象层? 1) 业务模式使用 IBatis 映射到的业务逻辑数据层。 2) JAXB 用于转换为 XML 的 XML 层。

We have a medium sized Java server that has data flowing in the following way:

SQL Database -> Data Layer -> Business Layer -> XML Serialization

It's important to note, that the data model mostly does not change between the layers. Yet I have been told that having a single data model used as:
SQL Database -- (IBATIS) -> Model -> convert the model to XML - is not a good idea, since schema changes mean changes in the model and then change in all layers in the application. And XML changes also mean the model has to change.

So is it recommended to have two object layers in this case? 1) Business logic data layer that the business schema maps to using IBatis. 2) XML layer that JAXB uses to convert to XML.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

写下不归期 2024-11-01 22:32:31

注意:我领导 EclipseLink JAXB (MOXy) 和 EclipseLink提供 JAXB 和 JPA 实现。

我建议使用一种通过 JAXB 映射到 XML 并通过 JPA 映射到数据库的数据模型。

架构的改变意味着
模型,然后在所有层中进行更改
应用程序。

  • 如果架构更改引入了新数据,那么它确实会影响模型,不引入新数据的架构更改(更改元素排序、添加分组元素)应该仅影响映射元数据。

所以建议有两个
在这种情况下是对象层吗?

  • 如果您有两个对象模型,那么您将引入一个在对象模型之间进行转换的层。这涉及到您需要处理的另一个库,以及您需要维护的更多代码。现在,对架构的更改会影响您的对象模型和对象转换层。这与单一对象模型场景的影响类似。

Note: I lead EclipseLink JAXB (MOXy), and EclipseLink provides both JAXB and JPA implementations.

I recommend using one data model that is mapped to XML via JAXB, and to the database via JPA.

schema changes mean changes in the
model and then change in all layers in
the application.

  • If the schema change introduces new data then it does affect the model, schema changes that do not introduce new data (change element ordering, add a grouping element) should only affect the mapping metadata.

So is it recommended to have two
object layers in this case?

  • If you have two object models then you are going to introduce a layer that converts between the object models. This involves another library you need to deal with, and more code that you need to maintain. A change to your schema now affects your object model, and your object conversion layer. This is a similar impact to the one object model scenario.
墟烟 2024-11-01 22:32:31

总的来说:是的,最好有一个单独的模型。

聚苯乙烯
由于在您的问题中您将其称为图层,因此您可能喜欢以下卡通: http://geekandpoke.typepad.com/geekandpoke/2011/03/architectural-best-practices.html
别太认真了:)

In general: yes, it's better to have a separate models.

P.S.
Since in your question you called it layers, you may like the following cartoon: http://geekandpoke.typepad.com/geekandpoke/2011/03/architectural-best-practices.html
Don't take it too seriously :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文