JPA 级联持久性与实体 ElementCollection 键

2023-11-27

我有两个像这样的 JPA 实体:

@Entity
class Foo {
    @Id
    private long id;
    // ...
}

@Entity
class Bar {
    @ElementCollection(targetClass = String.class, fetch = FetchType.LAZY)
    @MapKeyJoinColumn(name = "foo_id", referencedColumnName = "id")
    @MapKeyClass(Foo.class)
    @Column(name = "content")
    @CollectionTable(name = "bar_foo_content",
                     joinColumns = @JoinColumn(name = "bar_id", referencedColumnName = "id"))
    @ManyToMany(cascade = CascadeType.ALL)
    private Map<Foo, String> fooContent = Maps.newHashMap();
    // ...
}

如您所见,fooContent字段之间形成多对多关系Bar and Foo,所以我认为使用它是合适的@ManyToMany指定字段的级联。然而,当试图坚持Bar与几个Foo → String地图中的值,我得到以下异常:

javax.persistence.RollbackException: java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: <<instance of Foo>>

显然,EclipseLink 不会级联我的持久性Foo实例。我该如何注释fooContent使级联持续工作?


你不需要@ManyToMany此处注释。操作于ElementCollections 总是级联的。

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

JPA 级联持久性与实体 ElementCollection 键 的相关文章

随机推荐

  • Qt 找出 QSpinBox 是否被用户更改

    假设我有一个QSpinBox 我如何查明该值是否是由用户或其他函数手动更改的 编辑 我只想在用户更改值时执行一些操作 但如果您的程序执行此操作 setValue 我不想执行此操作 可能的解决方案 ui gt spinBox gt block
  • AngularJS ui-router:测试 ui-sref

    我正在尝试测试一些正在使用的视图 a link a 链接到我的应用程序中的其他州 在我的测试中 我触发了对此元素的点击 如下所示 element find a click 如果状态切换到 我该如何测试someState 使用时会很容易 st
  • 如何轻松地从 lambda 函数创建比较器?

    我想知道 Net 框架中是否提供了一个实现 IComparer 的类 并且可以从 lambda 函数构造该类 能够做到这一点将会很有用 void SortByLength List
  • 使用 NavigationController 在当前 tabBarController 上呈现视图控制器

    当呈现或关闭 VC 时 我不想继续隐藏和显示 tabBar 因为它会造成糟糕的用户体验 相反 我想直接在选项卡栏上呈现下一个 VC 这样当我通过从左向右缓慢拖动来关闭下一个 VC 时 我可以看到隐藏在视图后面的选项卡栏 如下图所示 请注意
  • 实现循环 UITableView

    实现循环 UITableView 的最佳方法是什么 当用户向上滚动到表格边界时 它不是显示空白 而是简单地循环环绕 这里的示例可能是选择星期几 一天 24 小时中的某个小时 或者全球范围内按顺序排序的时区 有一些如何解决这个问题的想法 可以
  • Spring Security 3-如何自定义用户名/密码参数?

    使用时如何自定义 UsernamePasswordAuthenticationFilter usernameParameter j username 和 passwordParameter j password 属性
  • java中的动态代理soap web服务客户端?

    有没有办法使用soap rpc Web服务 以便通过共享接口生成客户端 Restful Web 服务就是这样做的 但是基于肥皂的呢 您是否总是必须使用 Axis 或 CXF 等工具来生成存根和代理 或者是否有可以动态设置它的工具 Thank
  • 像关系数据库一样使用 Lucene

    我只是想知道我们是否可以在 lucene 中实现一些 RDBMS 功能 例子 1 我有 10 000 个项目文档 pdf 文件 必须对其内容进行索引 以便可供搜索 2 每个文档都与一个项目相关 项目可以包含项目名称 编号 开始日期 结束日期
  • 如何从ajax数据发送将pdf上传到服务器(使用jsPDF)

    我正在使用 jsPDF 在客户端生成 pdf 使用函数 doc save filename pdf 我可以下载它 现在我需要将其保存在服务器上 因此我使用 ajax 发送 pdf 数据并使用 PHP 脚本接收它 但生成的 pdfURL 上的
  • 在 #include 语句中使用垃圾字符时不会出现编译器错误

    include
  • 如何防止 EF Core 3.1 中的列更新?

    我从 Net Core 2 2 升级到 3 1 此功能已被弃用 modelBuilder Entity
  • 方案中的笛卡尔积

    我一直在尝试做一个返回n个集合的笛卡尔积的函数 在DrScheme中 集合以列表的形式给出 我一整天都在做这个 我想要一些指导方针 因为开始 稍后编辑 这是我想出的解决方案 我确信它不是迄今为止最有效或最简洁的 但我只学习了 3 周的方案
  • 获取带有改造的网站的 html - Android?

    我怎样才能获得一个网站的htmlretrofit 例如我有这个url我需要获取这个 url 的 html 以及如何加载更多 下面是我的代码 MainActivity java public class MainActivity extend
  • Flask 会话不持久

    我在 CentOS 6 3 上运行 Python 2 7 Apache mod wsgi 当我在本地主机上时 一切正常 但是 当我在 Azure 中的虚拟机上运行代码时 我没有看到会话信息跨页面保存 基本上在我看来 我有这样的想法 fron
  • mod_rewrite 错误 404 如果 .php

    我重写了我的网址以方便用户使用 例如 我有一个名为 user php 的页面 我将其重写为 user 但用户仍然可以使用 user php 如果他们请求扩展名为 php 的页面 我可以重定向到 404 吗 Options MultiView
  • AttributeError:“NoneType”对象没有属性“_instantiate_plugins”(无法导入create_engine)

    import os from sqlalchemy import create engine from sqlalchemy orm import scoped session sessionmaker engine create engi
  • html5,段落内的图/图标题给出了不可预测的输出

    以下标记使用figure元素来显示图像 该图像与段落的文本内联 因此该图 包含 在第一个元素内 p p div class object content p p div
  • Laravel Blade @include .html 文件

    将 HTML 文件包含在 Blade 中 我可以添加一个 html文件代替 php使用 Laravel 4 Blade My code include emails templates file file is email html fil
  • 模板类上的二元运算符重载

    我最近试图衡量我的运算符重载 模板能力 并作为一个小测试 创建了下面的 Container 类 虽然此代码在 MSVC 2008 下可以正常编译并正常工作 显示 11 但 MinGW GCC 和 Comeau 都在operator 超载 因
  • JPA 级联持久性与实体 ElementCollection 键

    我有两个像这样的 JPA 实体 Entity class Foo Id private long id Entity class Bar ElementCollection targetClass String class fetch Fe