我有3个人物,角色和位置模型代表足球俱乐部中的人

public class Person {

private Long id;

private String name;

private Role role;

}

public class Role {

private Long id;

private String name; //like manager, goalkeeping_coach, player

}

public class Position {

private Long id;

private String name; //striker, midfielder, defender, goalkeeper

}

问题是,只有当一个人扮演角色时,职位才有意义.所以如果我这样做

public class Person {

private Long id;

private String name;

private Role role;

private Position position;

}

那么对于所有没有角色的人实例,位置字段将存储空值.同样,可能还有其他属性仅对经理和/或goalkeeping_coach实例有意义.

我试图使Person类抽象

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)

public abstract class Person {

private Long id;

private String name;

private Role role;

}

public class Player extends Person {

private Position position;

}

public class Manager extends Person {

}

这将导致播放器和管理器实例保存在不同的表中.但是,如果人的角色发生变化(例如球员退休并成为俱乐部的经理),就会出现问题.然后,我不得不将该行从一个表移动到另一个表(例如删除播放器实例,并使用相同的数据(不包括位置数据)创建一个新的经理实例),这似乎不是一个好方法.

那么处理这种情况的最佳方法是什么?是否可以像第一种情况一样具有空值?

JAVA处理模型的步骤,java-处理模型中条件字段的最佳方法相关推荐

  1. arima 数据预处理_时间序列分析|ARIMA模型分步骤解析及R中实践

    你是否想要做时间序列分析,但却不知道代码怎么写? 你是否不清楚时间序列分析各种模型该在什么情况下使用? 本文将针对以上两个问题,带你入门时间序列分析~ 等等! 不止'入门' 读完这篇,你立即就能在R中 ...

  2. java 数组减除值_java – 删除数组中空值的最有效方法是什么.

    我很好奇删除数组中空值的最有效方法是什么.这是我当前的null(0)删除方法. public static int[] removeNull(int[] array){ int j = 0; for( ...

  3. 使用java语言操作,如何来实现MySQL中Blob字段的存取

    /** * Title: BlobPros.java * Project: test * Description: 把图片存入mysql中的blob字段,并取出 * Call Module: mtoo ...

  4. 《JAVA练习题目5》 请在类中定义计算阶乘的方法完成本题目的求解

    训练要点:类中的方法应该如何编写和调用.(10分) 题目内容: 输入一个10以内的整数n,计算1!+2!+-+n!的值,并输出该值. 输入格式: 10以内的一个整数 输出格式: 代表计算结果的一个整数 ...

  5. Java 技术篇 - ServerSocket接收http的url请求中包含中文的处理方法,URLDecode与URLEncode,url解码与编码

    效果图: 正常接收到中文的请求是这个样子的:%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E5%B0%8F%E8%93%9D%E6%9E%A3%E7%9A%84%E5%8D ...

  6. java怎么将加载图片消除_Java中加载图片的方法

    Java中添加图片,我知道有两种方法 用new ImageIcon("地址")函数,将图片放到JLabel中,然后把JLabel放到需要的地方就可以了 ImageIcon bg=n ...

  7. java字符连接字符串数组_Java中连接字符串的最佳方法

    java字符连接字符串数组 最近有人问我这个问题–在Java中使用+运算符连接字符串是否对性能不利? 这让我开始思考Java中连接字符串的不同方法,以及它们如何相互对抗. 这些是我要研究的方法: 使用 ...

  8. Java中连接字符串的最佳方法

    最近有人问我这个问题–在Java中使用+运算符连接字符串是否对性能不利? 这让我开始思考Java中连接字符串的不同方法,以及它们如何相互对抗. 这些是我要研究的方法: 使用+运算符 使用StringB ...

  9. java怎么将程序保存在桌面_在Java桌面应用程序中保留数据的最佳方法是什么?...

    我的桌面应用程序中有一大堆 Java对象,我试图决定将文件作为文件系统的最佳方式. 我曾经有过一些想法: >使用DataOutputStream滚动我自己的串行器:这将给我最大的控制文件中的内容 ...

最新文章

  1. 计算机视觉方向简介 | 半全局匹配SGM
  2. ASP.NET实现文件上传
  3. 北斗导航 | 卫星导航基础知识(坐标系)
  4. Jenkins 中如何一次构建多个项目
  5. linux修改最大进程,linux 进程数最大值修改方法
  6. php 查找所有函数,PHP(方法 函数 循环 和 数组 查找)
  7. 疫情之下,哪些行业正在逆势爆发?
  8. js合并对象中有相同key值的_js 深比较和浅比较
  9. 计算机组成原理中移码怎么算,计算机组成原理中移码是怎么回事?
  10. Silverlight 游戏开发小技巧:实现街霸4的选人界面
  11. PHP学习笔记--函数
  12. pytorch、CUDA、cuDNN下载和环境变量设置
  13. java递归 杨辉三角_java杨辉三角递归实现
  14. 随机课堂、随机提问、随机抽检、随机名单,可去重可重复
  15. 一意孤行亚马逊----一个钓鱼疯子的巴西亚马逊之行( 3.九月19日 玛瑙斯城印象) 作者:咸水鱼...
  16. 阿里云盾SSL证书即将到期怎么办?
  17. 千万PV是什么意思?
  18. 判断一个单链表是否有环,若有,找出环的入口节点
  19. 使用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的专业图表试读版
  20. 【pytorch】ECA-NET注意力机制应用于ResNet的代码实现

热门文章

  1. vue 高德轨迹自定义两点之间的颜色_vue 还是 react?这是一个问题
  2. Python版点菜订单
  3. 天下无贼中经典的句子
  4. OCR:深度学习-目标检测-超详细图解Faster R-CNN
  5. 泸州市的电子计算机学校名称,泸州电子计算机机械学校2020年招生简介
  6. Tosca 添加 modules,添加Library,引用重复步骤
  7. %Error opening tftp://255.255.255.255/network config
  8. python module: csv
  9. (转)B-树、B+树、B*树
  10. ASP.NET 经典60道面试题