JPA如何为可嵌入对象提供继承关系

2024-03-04

我有一个抽象类“BaseUnit”来表示应用程序中的每个单元。我将其定义为@MappedSuperclass.

@MappedSuperclass
public class BaseUnit implements UnitMultiplierInterface, Serializable {
/**
 * 
 */
private static final long serialVersionUID = -2648650210129120993L;
@Enumerated(EnumType.STRING)
private UnitMultiplier multiplier;
@Enumerated(EnumType.STRING)
private UnitSymbol unit;
@Column(name = "value")
private double value;

@Override
public void setMultiplier(UnitMultiplier multiplier) {
    this.multiplier = multiplier;
}

@Override
public UnitMultiplier getMultiplier() {
    return multiplier;
}

@Override
public void setUnit(UnitSymbol unit) {
    this.unit = unit;
}

@Override
public UnitSymbol getUnit() {
    return unit;
}

@Override
public void setValue(double currentL1) {
    this.value = currentL1;
}

@Override
public double getValue() {
    return value;
}}

我有一些子类型,例如百分比、阻力。

百分比:我将其定义为@Embeddable

@Embeddable
public class Percentage extends BaseUnit {
/**
 * 
 */
private static final long serialVersionUID = 2693623337277305483L;

public Percentage() {
    super();
}

public Percentage(double value) {
    setUnit(UnitSymbol.Percentage);
    setValue(value);
}

}

反抗:。我将其定义为@Embeddable

@Embeddable
public class Resistance extends BaseUnit {
/**
 * 
 */
private static final long serialVersionUID = -4171744823025503292L;

public Resistance() {
    super();
}

public Resistance(double value) {
    setUnit(UnitSymbol.Ohm);
    setValue(value);
}

}

我可以在定义实体时使用相同/不同的单位类型。这是一个示例。

@Entity
public class A implements Serializable {
/**
 * 
 */
private static final long serialVersionUID = 5167318523929930442L;
@Id
@GeneratedValue
@Column(name = "id")
private long id;
@Embedded
private Resistance resistance;
@Embedded
/** resistance of scenario. */
private Percentage percentage;

}

现在,我的问题是你认为这个 jpa 定义可以毫无问题地工作吗?或者您能告诉我实现我的要求的最正确方法吗?


更好的方法是将两者混合@Embeddable and @MappedSuperclass在你的抽象类中,然后以两种不同的方式使用它。如果百分比需要与阻力相似,那么你就不需要@MappedSuperClass完全可以,但如果不相似,那么以下是您可以实现要求的方法。

@MappedSuperclass
@Embeddable
public class BaseUnit implements Serializable {
...
}

情况 1:BaseUnit 作为主键

@Entity 
public class AWithResistance implements Serializable {

@EmbeddedId
private BaseUnit key;
....
}

情况2:BaseUnit作为Super Class继承公共属性

@Entity 
public class AWithPercentage extends BaseUnit implements Serializable {
....
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JPA如何为可嵌入对象提供继承关系 的相关文章

  • “一对多”属性值类型不应是“持久实体”

    我有 1 个用户访问许多其他域 并将其放入我的代码中 用户等级 import org hibernate annotations Cascade import org hibernate annotations CascadeType im
  • GWT - 如何组织项目以拥有多个网页以及它们之间的导航

    我是 GET 的新手 顺便说一句 它给我留下了深刻的印象 并且发现它对于像我这样熟悉 C NET 桌面技术并愿意编写 Web 应用程序的人来说非常有吸引力 我根据 GWT Eclipse 向导生成的示例启动了自己的项目 该项目生成带有面板的
  • Spring Boot自动装配存储库始终为空[重复]

    这个问题在这里已经有答案了 每次我进入我的服务类时 存储库似乎都没有自动连接 因为它不断抛出 NullPointerException 谁能帮我检查一下我缺少什么吗 这是我的代码 演示应用程序 java package com exampl
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 是否可以使用 Flying Saucer (XHTML-Renderer) 将 css 解析为类路径资源?

    我正在尝试将资源打包到 jar 中 但我无法让 Flying Saucer 在类路径上找到 css 我无法轻松构建 URL 来无缝解决此问题 https stackoverflow com questions 861500 url to l
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • 需要使用 joda 进行灵活的日期时间转换

    我想使用 joda 解析电子邮件中的日期时间字符串 不幸的是我得到了各种不同的格式 例如 Wed 19 Jan 2011 12 52 31 0600 Wed 19 Jan 2011 10 15 34 0800 PST Wed 19 Jan
  • 套接字的读写如何同步?

    我们创建一个套接字 在套接字的一侧有一个 服务器 在另一侧有一个 客户端 服务器和客户端都可以向套接字写入和读取 这是我的理解 我不明白以下事情 如果服务器从套接字读取数据 它在套接字中是否只看到客户端写入套接字的内容 我的意思是 如果服务
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • Java实现累加器类,提供Collector

    A Collector具有三种通用类型 public interface Collector
  • Freemarker 和 Struts 2,有时它计算为序列+扩展哈希

    首先我要说的是 使用 Struts2 Freemarker 真是太棒了 然而有些事情让我发疯 因为我不明白为什么会发生这种情况 我在这里问是因为也许其他人有一个想法可以分享 我有一个动作 有一个属性 说 private String myT
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • 在 SWT/JFace RCP 应用程序中填充巨大的表

    您将如何在 SWT 表中显示大量行 巨大是指超过 20K 行 20 列的东西 不要问我为什么需要展示那么多数据 这不是重点 关键是如何让它尽可能快地工作 这样最终用户就不会厌倦等待 每行显示某个对象的实例 列是其属性 一些 我想使用 JFa
  • 如何在 Java 中创建接受多个值的单个注释

    我有一个名为 Retention RetentionPolicy SOURCE Target ElementType METHOD public interface JIRA The Key Bug number JIRA referenc
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • 如何使用play框架上传多个文件?

    我在用play framework 2 1 2 使用java我正在创建视图来上传多个文件 我的代码在这里 form action routes upload up enctype gt multipart form data
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐

  • 合并两个图并在 R igraph 中添加边权重

    我试图将两个图与相同的节点组合起来 但这样新的图边权重是两个原始图的总和 但当然希望解决方案扩展到 N 个图 g1 lt graph empty directed FALSE vertices letters 1 2 g1 lt g1 ed
  • 在 asp.net mvc 中单击按钮动态添加控件

    我正在创建一个 asp net MVC 应用程序 我想在其中提供动态添加控件的功能 我有一个表单 其中有两个用于名字和姓氏的文本框 它们用作单个控件 现在用户可以添加任意数量的这组控件 我可以使用 java 脚本在页面上添加这些控件 但我不
  • flutter :不支持的操作:无法添加到不可修改的列表

    我在 StatelessWidget 中有一个 ListView 它有项目 每个项目都包含一个复选框 当有人检查某个项目时 我希望 ListView 将其作为参数发送到另一个页面 但是当我这样做时 它给了我这个错误 I flutter 70
  • WebLogic“超出规定的内容长度”错误

    我有一个 Servlet 过滤器 它在 WebLogic 10 0 中生成 超出规定的内容长度 错误 如果有任何解决此问题的建议 我将不胜感激 详情如下 servlet 过滤器调整图像大小 将 FileInputStream 的内容 从磁盘
  • 如何使用 JGit 检查 Git 克隆是否已完成

    我学习 git 并使用 JGit 从 java 代码访问 Git 存储库 Git 默认情况下不允许克隆到非空目录 我们如何确定本地计算机中的特定 git 存储库已经完成了 git 克隆 以便我们随后只能执行 Git pull 操作 目前我正
  • JavaScript 中的 child 和 childNode 有什么区别?

    我发现自己使用 JavaScript 并且遇到了childNodes and children特性 我想知道它们之间有什么区别 还有一个比另一个更受青睐吗 Understand that children https dom spec wh
  • 使用 JS 消费 Rails send_data 响应

    我有一个连接到 Rails API 后端的 VueJS 前端 在其中一个端点中 我正在使用邪恶 PDF https github com mileszs wicked pdf生成 PDF 当我在浏览器中打开 URL 本身时 PDF 可以正常
  • 如何在Android中创建圆形ImageView? [复制]

    这个问题在这里已经有答案了 我怎样才能创建一个圆角ImageView在安卓中 我已经尝试过以下代码 但它运行不正常 Code Bitmap circleBitmap Bitmap createBitmap bitmap getWidth b
  • Rails Devise - 传递 URL 进行登录

    有没有办法让我将 URL 传递到 Devise 登录页面 以便当用户登录时 他 她被重定向回该 URL 就像是 login passthru somethingawesome 或者设置一个会话变量更好 有一个方法来存储重定向位置和一个方法来
  • 在 docker 中与 .net core 建立 DB2 连接时无法加载 DLL 'libdb2.so'

    如何使 libdb2 so 文件对 DB2 包可见 我已经验证该包可以在 Ubuntu 中运行 但无法使其在 Docker 中运行 Dockerfile FROM microsoft aspnetcore 1 0 assume the bu
  • 将标识列添加到 SQL Server 2008 中的视图

    这是我的观点 Create View MyView as Select col1 col2 col3 From Table1 UnionAll Select col1 col2 col3 From Table2 我需要添加一个名为的新列Id
  • Git 不会添加任何文件 - 只是一个空目录

    我一直在 Xcode 中开发 iPhone 项目 并决定将其放在 github 上 我在 github 上创建了一个存储库 克隆了它 并将所有文件移动到该目录中 然后我尝试 git add Directory 我提交并推送 发现现在仓库中唯
  • 更改 UIButton 背景颜色

    有人可以帮助我如何将按钮背景从白色更改为其他颜色 我知道如何添加图像并将其设为自定义按钮 但我不知道如何将初始按钮颜色从白色更改为另一种颜色 我们将非常感谢您的帮助 干杯 我有类似的要求 并且不想在我的应用程序包中包含其他文件 因此我编写了
  • 将具有两列的 data.frame 重塑为具有数据的多列 (R)

    这是一个微不足道的问题 但我到目前为止还找不到答案 我想将数据框列 年份 拆分为一组新列 每年列名称及其下方的后续数据 Year FQ 1975 3 156 1975 8 980 1977 10 304 1977 7 861 1979 4
  • 您可以在 Silverlight DataGrid 中将 ScrollIntoView() 与 PagedCollectionView 一起使用吗?

    是否可以在 Silverlight 中滚动到特定行 按对象标识 DataGrid http msdn microsoft com en us library system windows controls datagrid VS 95 as
  • 如何在文本旁边放置按钮?

    嘿伙计们 我需要将这两个按钮放在名字旁边 我怎样才能做到这一点 它们总是出现在单词下方
  • PostgreSQL gem pg 无法安装

    我的数据库是 PostgreSQL 我在 CENTOS 在安装 pg gem 时 我收到以下错误 我重新安装也解决了我的 YAML 问题 但这不起作用 但这只是一个警告 我的主要问题是 pg gem 的安装 root vdimc04 gem
  • WCF ASP.NET 路由集成功能需要 ASP.NET 兼容性

    当我尝试从我的服务器访问我的网络服务时 我遇到了这个问题 ASP NET 路由集成功能需要 ASP NET 兼容性 请参阅 http msdn microsoft com en us library ms731336 aspx 这个怎么做
  • HTML 选择标签文本方向

    有一种方法可以创建从右到左的文本方向selectHTML 中的标签 以下内容在 IE 中有效 但在 Firefox 中仅对齐文本 而在 Chrome 中则没有任何效果
  • JPA如何为可嵌入对象提供继承关系

    我有一个抽象类 BaseUnit 来表示应用程序中的每个单元 我将其定义为 MappedSuperclass MappedSuperclass public class BaseUnit implements UnitMultiplierI