为购物车项目和产品设置正确的 jpa 映射

2024-01-30

我正在通过一些例子学习jpa,涉及购物车和购物车物品。我将它们定义如下..但不太确定要使用哪个映射

@Entity
class Product{

   private Long id;
   private String name;
   ...
}

@Entity
class CartItem{
   private Long id;

   private Product product;

   private int quantity;

...
}

@Entity
class ShoppingCart{
   private Long id;

   @OneToMany
   private Set<CartItem> cartItems;

  ...
}

我不太确定的是如何将它们之间联系起来Product and CartItem以及如何设置mappedBy属性。有人可以告诉我该怎么做吗?这样做的标准是什么?我试图设置类似的东西1 cartitem contains 1 product only.听起来像是一个OneToOne关系。如果是这样,谁维持这种关系(这不是mappedBy是吗?)。我也有类似的疑问ShoppingCart and CartItems too

提前致谢


一件购物车商品引用一种产品。但单个产品被多个购物车项目引用。所以这是一个一对多的关联。

一个购物车作为多个商品,而一个商品是一个购物车的一部分,因此它也是一对多关联。

当您有双向 OneToMany 关联时,关联的所有者方始终是many边。协会的所有者一方是没有组织的一方mappedBy属性。的确,mappedBy means "我只是关联的另一端,它已经由以下属性映射”。注意关联的映射方式(连接列、连接表)必须只能在所有者端定义,其中mappedBy属性不存在。

当您具有单向关联时,只有一个位置可以定义映射,因此永远不会使用mappedBy 属性。

因此,您的实体应该像这样映射:

@Entity
class Product{

   private Long id;
   private String name;
   ...
}

@Entity
class CartItem{
   private Long id;

   @ManyToOne
   private Product product;

   private int quantity;

...
}

@Entity
class ShoppingCart{
   private Long id;

   @OneToMany
   private Set<CartItem> cartItems;

  ...
}

如果您希望购物车项目了解其所属的购物车,则您的关联将变为双向,并且实体将变为:

@Entity
class CartItem{
   private Long id;

   @ManyToOne
   private Product product;

   @ManyToOne
   private ShppingCart shoppingCart;

   private int quantity;

...
}

@Entity
class ShoppingCart{
   private Long id;

   @OneToMany(mappedBy = "shoppingCart")
   private Set<CartItem> cartItems;

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

为购物车项目和产品设置正确的 jpa 映射 的相关文章

  • 如何从 AccountManager.getAccounts() 获取与特定帐户关联的图标

    每个帐户的帐户设置中都会显示一个图标 对于 Google 帐户有一个图标 对于 Facebook 帐户有另一个图标 有没有办法从应用程序的代码中获取该图标 最后我解决了 private Drawable getIconForAccount
  • 我可以为 Spring Boot 应用程序创建多个入口点吗?

    In 春季启动 需要指定一个主类 它是应用程序的入口点 通常 这是一个具有标准 main 方法的简单类 如下所示 SpringBootApplication public class MySpringApplication public s
  • 如何解析比 Java 中 NumberFormat 更严格的数字?

    我正在验证表单中的用户输入 我解析输入NumberFormat http docs oracle com javase 7 docs api java text NumberFormat html 但它是邪恶的 几乎允许任何事情 有没有办法
  • Spring Batch 多线程

    我正在编写一个 Spring Batch 并希望在需要时对其进行扩展 我的 ApplicationContext 看起来像这样 Configuration EnableBatchProcessing EnableTransactionMan
  • Spring 可以理解 @Inject 替换 Weld 作为 JSR-299 实现吗?

    我从几个网页中注意到 Spring 3 0 显然支持来自 JSR 330 的 Inject 由于我们确实希望在 Web 应用程序和独立应用程序的库中使用 JSR 299 语法进行依赖项注入 并且有 Weld 的替代方案 因此如果 Sprin
  • 将图像缩略图上传到服务器,而不上传整个图像

    据我所知 我在这里问的是不可能的 但我想无论如何我都会问 以防我遗漏了什么 假设您想让用户上传 JPG 图像 并且这些图像被缩放为较小的图标 并且原始图像始终被丢弃并且不再需要 有没有什么方法可以在大多数现代浏览器中普遍使用 让用户选择硬盘
  • SwingWorker 在 Unsafe.park() 处挂起

    我有一个SwingWorker与后台服务器通信 然后更新JFrame 我正在调试我的应用程序并注意到即使在SwingWorker完成了它的工作 它的线程仍然存在 它挂在Unsafe park java lang Object 这是一个本机方
  • 在 Eclipse 中导航 Java 调用堆栈

    在调试器中像GDB http sources redhat com gdb 当您在断点处停止时 您可以轻松地向上移动调用堆栈并检查相关的源和堆栈帧数据 在 Eclipse 中如何做到这一点 In the 调试视角 http www ibm
  • Maven:缺少工件 org.springframework:spring:jar:4.2.6

    我在 SpringToolSuite 中有一个动态 Web 项目 它被转换为 Maven 项目 我遇到问题 缺少工件 org springframework spring jar 4 2 6 我已经尝试清理 重建和运行该项目 它给 读取文件
  • Apache POI 的 ProGuard 设置

    我正在构建一个使用 Apache POI 库的应用程序 当我调试应用程序 在不运行 Proguard 的情况下编译它 时 一切都运行良好 但是在导出 APK 后 当我运行应用程序并打开 Excel 文件时 出现以下异常 RuntimeExc
  • 使用 java.nio.file.Paths 接口时缺少方案(IllegalArgumentException)

    这是一个非常简单的java问题 我在 Linux 系统上使用 Java 8 和 eclipse kepler 我一直在尝试尝试NIO 2 我的代码是 package lucasTest import java io IOException
  • 在 jFrame 中启用右键单击

    嘿 我正在寻找如何使用 NetBeans 在 jFrame 中启用 仅且仅 右键单击并显示弹出菜单 使用我的代码 private void formMouseClicked java awt event MouseEvent evt pop
  • Hibernate3:自引用对象

    需要一些帮助来了解如何执行此操作 我将在文件系统上运行递归 查找 并且希望将信息保留在单个数据库表中 具有自引用的层次结构 这是我想要填充的数据库表结构 目录对象表 id int NOT NULL name varchar 255 NOT
  • 为什么 Libgdx 的 Table 不接受缩放操作?

    我在 libgdx 库中使用 scene2d 在游戏中创建一些 UI 我使用了一个表格 我想在用户触摸时采取一些缩放操作以使按钮触摸有意义 当我使用任何其他 Actor 类型 例如 Group 并为其提供缩放操作时 它可以工作 但不能工作表
  • 将 Class 对象转换为字节

    如果我有一个Class http java sun com j2se 1 5 0 docs api java lang Class html在运行时实例 我可以获得它的 byte 表示形式吗 我感兴趣的字节将在类文件格式 http java
  • 使用JPanel绘制直线并获取点坐标

    我现在完全不知所措 我没有太多用 Java 构建 GUI 我一直在阅读有关 swing 和 JPanel 的所有内容 我认为我想做的事情是可能的 我只是还没有弄清楚how 我正在尝试构建一个 GUI 您可以在其中在某个绘图区域内绘制直线 我
  • bean 中的 Spring JavaConfig 属性未设置?

    我正在考虑将 Spring JavaConfig 与一些属性文件一起使用 但 bean 中的属性未设置 bean 中的属性未设置 这是我的网络配置 Configuration EnableWebMvc PropertySource valu
  • @JsonCreator '无法找到具有名称的创建者属性',即使使用ignoreUnknown = true

    我有以下课程 JsonIgnoreProperties ignoreUnknown true public class Topic private List
  • Ant 类路径和 junit.jar

    我有一个 build xml 它允许我运行 junit 测试 这是相关部分
  • 在私有 guice 模块中公开 Map

    我在 guice 中有一个 PrivateModule 我想从该模块公开一个 Map public class TestInjectionModule extends PrivateModule expose Map class annoa

随机推荐

  • 为什么在 JpaTransactionManager 中使用 jpadialect

    我正在从 Spring in Action 学习 spring 3 0 那里讨论了在 JpaTranactionManager 中使用 jpadialect 的重要性
  • 使用 !source 的 gitconfig 别名不起作用 (zsh)

    我有一个像这样的 gitconfig alias l source githelpers pretty git log 当我运行它时 我得到这个 desktop git l source githelpers pretty git log
  • 设置 geopandas 地图的中心

    我可以用 geopandas 绘制世界地图 world geopandas read file geopandas datasets get path naturalearth lowres fig ax plt subplots worl
  • 使用 opencart 获取多商店设置的商店 ID

    我们设置了多个商店 我想稍微更改每个商店的模板 我仔细查看了已经存在的代码并发现了这些 this gt config gt get config store id this gt load gt model setting store re
  • 如何获取 Windows 版的 python-dev?

    我们正在尝试安装 PIL 并收到错误 error command gcc failed with exit status 1 许多类似的问题 包括这个 安装 Reportlab 错误 命令 gcc 失败 退出状态为 1 https stac
  • 如何在“

    余烬绑定数据属性指南 https guides emberjs com v2 10 0 templates binding element attributes 说 如果您使用带有布尔值的数据绑定 它将添加或删除指定的属性 我正在尝试使用此
  • 哪个系统调用返回连接到 Linux 系统的设备列表?

    我正在尝试编写一个 C Java 程序 它将显示连接到系统的设备列表 非常感谢在这方面的任何帮助 lsusb http www cyberciti biz faq linux how do i list all usb devices 命令
  • iOS EXC_BAD_ACCESS:如何调试?

    我收到 EXC BAD ACCESS 我知道这通常意味着什么 尝试访问 不再 的对象是最可能的原因 那么 我在哪里可以找到它 我在网上看了很多帖子 他们都说 方案中 启用 NSZombie 现在 当我运行调试器时 我应该查看什么 我看不出有
  • Thread.join 和 Synchronized 有什么区别?

    我很困惑何时使用Thread join 以及何时使用synchronization在多线程应用程序中 根据我的说法 它们都阻塞或等待其他线程完成执行 此示例必须按顺序模式依次输出 10 个 A 10 个 B 和 10 个 C 如下所示 1
  • template 与 template 不匹配是一个缺陷吗?

    在探索的同时这个答案 https stackoverflow com a 47730794 1366368我发现采用参数包的模板不会被需要具有特定数量参数的模板的模板所接受 在我看来 这是一个缺陷 因为如果模板可以采用任意数量的参数 它应该
  • 在纹理数组中绘制Texture2D图集

    如何通过 GLSL Sampler 仅绘制存储在纹理数组中的纹理2D 图集的一部分 例如 我有纹理图集 我会将它们放在一起 与相同大小的其他图集 在Texture2D数组里面 glTexSubImage3D 那么 在这种情况下我的采样器应该
  • 为什么我们需要快速正文解析器?

    我遇到了很多博客和文章 他们建议使用 body parser 来解析请求正文数据 有没有办法在不使用任何中间件的情况下解析数据或从正文获取正文数据 默认情况下 express 只为您提供原始 HTTP 请求正文req论证作为Incoming
  • Lambda 没有自动推断返回类型

    当我回答我自己的问题时https stackoverflow com a 32115498 383779 https stackoverflow com a 32115498 383779 我又有一个疑问了 In const CArray
  • 如何逐行运行Linux程序

    我想使用一些调试器逐行运行 GTK C 程序 我从未调试过 Linux 程序 那么在哪里可以找到针对初学者如何调试代码的说明呢 我只是有一个想法 我必须从网上下载源代码 使用调试符号编译项目并通过 DDD 或 GDB 运行源代码 那么任何人
  • 切换当前元素的可见性

    我正在尝试写一个函数toggle active单击即可显示隐藏内容 再单击一次即可再次折叠内容 可悲的是 它不起作用 你能帮我修改一下吗 function toggle active this var x this nextSibling
  • XDebug 无法在 VScode 中进行 php 调试

    即使在所有配置之后 使用 xdebug 和 xampp 在 vscode 中进行 PHP 调试也无法正常工作 这是我的 php ini 文件配置 zend extension D Xampp php ext php xdebug 3 0 0
  • CakePHP 中页面别名的自动路由

    我正在使用 CakePHP 框架创建一个 CMS 通过 CMS 创建的每个页面都将有其唯一的 URL 别名 这还取决于虚拟文件夹结构 例如 www site com level 1 about us www site com level 2
  • 如何让 async/await 等待 Observable 返回

    对 Angular 相当陌生 并且在 Promises Observables 和 async await 方面遇到困难 我有一个功能需要当前用户详细信息来执行某些任务 为此 我编写了一个获取用户详细信息方法 该方法返回一个承诺 并且任务在
  • 来自 Pivot 的 Seaborn 热图中的数据顺序

    所以我有一个使用seaborn创建的热图 revels rd pivot Flavour Packet number Contents ax sns heatmap revels annot True fmt d linewidths 0
  • 为购物车项目和产品设置正确的 jpa 映射

    我正在通过一些例子学习jpa 涉及购物车和购物车物品 我将它们定义如下 但不太确定要使用哪个映射 Entity class Product private Long id private String name Entity class C