Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java UML规范:我需要继承吗?_Java_Jpa_Inheritance_Uml_Subclassing - Fatal编程技术网

Java UML规范:我需要继承吗?

Java UML规范:我需要继承吗?,java,jpa,inheritance,uml,subclassing,Java,Jpa,Inheritance,Uml,Subclassing,这是我的应用程序:目的是根据错误添加记录(但不是所有错误都会导致添加新记录,只有主要错误)。 每个会话都有许多错误,然后内部服务将管理这些错误,以了解哪些是主要错误(哪些是“小”错误,我指的是隐含的、相关的或附加于此主要错误的错误) UML图: 所以我需要你对我的UML图的帮助和建议,你认为这是最好的方法吗?我真的需要在这里进行子类化吗(或者仅仅放置两个不同的类Error和MainError会更好) 因此,每个主要错误都有一个相关错误的列表 主错误不能是另一个主错误列表的一部分 一个错误可以与

这是我的应用程序:目的是根据错误添加记录(但不是所有错误都会导致添加新记录,只有主要错误)。 每个会话都有许多错误,然后内部服务将管理这些错误,以了解哪些是主要错误(哪些是“小”错误,我指的是隐含的、相关的或附加于此主要错误的错误)

UML图:

所以我需要你对我的UML图的帮助和建议,你认为这是最好的方法吗?我真的需要在这里进行子类化吗(或者仅仅放置两个不同的类Error和MainError会更好)

  • 因此,每个主要错误都有一个相关错误的列表
  • 主错误不能是另一个主错误列表的一部分
  • 一个错误可以与许多主要错误相关联
  • 我正在使用JPA开发Java应用程序
  • 一条记录只与一个MainError关联,显然与许多错误关联(因为每个MainError都有一个错误列表)

非常感谢您

亲自讨论该图表。什么是
错误
?它只是由一个
错误ID
组成。这不是什么好消息。那么为什么要创建这样一个类呢?我看不出有什么理由。那么,当没有理由的时候,为什么要创造它呢?你在这儿。这是多余的。您可能可以使用从
MainError
到self的关联。然后您可以将
MainError
重命名为简单的
Error

我认为下面的图表将满足并清楚地重申您的需求

这表明:

  • 会话
    遇到零个或多个
    错误
  • 在一个
    会话中遇到
    错误
  • 错误
    必须是一个子类的实例,并且只能是它的一个子类(“complete”表示实例必须是子类的实例;“disjoint”表示实例不能被多次分类,这在Java中是不可能的。)
  • 主错误
    导致零个或多个
    次要错误
  • 次要错误
    是由零个或多个
    主要错误
这意味着每个
错误
最初都被创建为
未分类错误
,然后被分类为
主要错误
次要错误

我没有费心去建模
记录
,因为它太模糊了,对讨论没有任何影响

如果要实现此模型,则关联端点将经历名称更改,该更改将保留语义,同时成为normalLookingCamelCaseForJava。以下是名称更改:

  • 遭遇
    将成为
    遭遇错误
    ,类型为
    列表
中遇到的
将成为类型为
会话
  • 原因
    将成为
    类型的
    原因错误
    列表
  • 由引起的将成为列表

  • 在JPA中,您可以使用鉴别器将所有错误类映射到一个表中,这将使重新分类更加有效。(请参阅以了解如何操作。)注意,您可能希望将多对多关联映射到单独的关系数据库表。不过,这是一个单独的讨论。

    如果您停止使用除关联结束属性之外的列表,每个人都会更容易进行推理。最大基数>1的每个关联结束都已经是UML中的集合。您的图表与文本不匹配。您说过一个会话有很多错误,其中一些错误将被归类为主要错误。因此,关联应该连接到超类。您真正的问题是如何在UML中表达bullet 2吗?感谢Jim的回答,很抱歉列表(与关联结束属性重复),我不应该将它们放在UML图中。关联应该连接到超类错误?因为我认为最好将它连接到MainError,因为每个MainError都有一个错误列表,这就像将会话链接到错误一样,我错了吗?谢谢你能修改你的图表吗?你应该让它与你的问题陈述相匹配。我认为问题的一部分可能是您试图过早地进行优化。非常有趣!!非常感谢,所以我有几个问题:1)记录将被链接到MainError,而不是Error,对吗?(记录*-1主错误)2)错误将是抽象的,我将没有明显的错误表?3) “不保密”的真正目的是什么?我调用服务getError(Session),然后我有所有的错误,我将它们声明为UnclassifiedError,然后我调用服务manageErrors(UnclassifiedErrors),它将创建带有次级错误列表的主错误,然后我保留数据库MainErrors和SubderifiedErrors right?1)正确。2) 在Java
    中,Error
    应该是抽象的,但在UML中,{covering}约束是等价的。在JPA中,默认情况下,您得到一个带有鉴别器的表。我希望该表被称为
    Error
    。3)
    UnclassifiedError
    是当您还不知道它是什么时创建的。是的,您的
    manageErrors()
    可以工作,不过更好的名称可能是
    classifyErrors()
    ,或者是一些提示分析和分类的东西。如果您觉得我的答案最有帮助,请按按钮接受。我非常感谢您的帮助!!由于您的好意,我还有几个问题1)未分类的derror不会在DB和DAO层中持久存在,我不会有任何与未分类的derror相关的方法,对吗?2) 如果没有未分类的错误,我的方法是调用getError(会话),获取所有错误,将它们声明为对象,然后调用classifyErrors(错误),这将创建主错误