在 Hibernate 中持久化 LinkedList

2023-12-04

我试图保留一个具有 LinkedList 属性的类,但似乎无法正确执行。这是我的代码和映射:

 import java.util.LinkedList;
 public class Stuff implements java.io.Serializable {
    private long id;
private LinkedList<Image> images;


public Stuff() {
}


public Stuff(long Id) {
    id = Id;
}

public long getId() {
    return id;
}

public void setId(long mealId) {
    id = mealId;
}


public LinkedList<Image> getNumberImages(int number) {
    assert (number >= 0);
    return (LinkedList<Image>) images.subList(0, number) ;
}

public LinkedList<Image> getImages() {
    return images;
}
    public LinkedList<Image> setImages(LinkedList<Image> images) {
    this.images = images;
}


public void addImage(Image image) {
    if (!images.contains(image)) {
        images.add(image);
    }
}

休眠映射:

<hibernate-mapping>
    <class name="data.Stuff" table="Stuff">
        <id name="id" type="long" access="field">
            <column name="ID" />
            <generator class="assigned" />
        </id>
        <list name="images" inverse="false" table="IMAGE" lazy="true" access="field">
            <key>
                <column name="ID" />
            </key>
            <list-index></list-index>
            <one-to-many class="data.Image" />
        </list>
    </class>
</hibernate-mapping>

看来我可以像这样持久保存类内容的对象,但是当我尝试恢复它们时,会发生以下错误:

Hibernate: select stuff0_.ID as ID0_, stuff0_.NAME as NAME0_, meal0_.GROUPING as GROUPING0_ from MEAL meal0_
org.hibernate.PropertyAccessException: could not set a field value by reflection setter of data.Meal.images

一般来说,Hibernate 会提供自己的集合实现,因此您应该更喜欢接口而不是特定的实现。它可能试图为图像分配不同类型的列表,但失败了。你必须将你的字段更改为List<Image>.

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

在 Hibernate 中持久化 LinkedList 的相关文章

随机推荐

  • CDI ConversationScoped 长时间运行的 Bean 不工作

    我在理解 Weld 或 CDI 的对话范围时遇到一些问题 在我的 JSF Faclets 页面中 我调用
  • 我从未见过的MySQL连接错误

    新的mysql错误 ERROR 42000 MySQL ODBC 3 51 Driver mysqld 5 5 9 You have an error in your SQL syntax check the manual that cor
  • 当 Angular 中的路线发生变化时结束可观察间隔

    我在 Angular 组件中启动一个间隔 但即使在我更改路线后它仍然会发出请求 如何停止间隔 returns an observable getAllPolls return Observable interval 2000 switchM
  • Snow Leopard 新的“突然终止”机制有缺点吗?

    Snow Leopard 有一项我从未听说过的新技术 突然终止 见突然终止 in 这个苹果文档 显然是一种告诉系统何时可以残酷地杀死您的应用程序的机制 而不是通过标准的退出机制 这应该有助于更快地注销 断电 休眠 首先 我不知道它 没有看到
  • WP7 / Silverlight]在列表框中绑定远程图像,这样UI就不会阻塞

    场景 Windows Phone 7 Silverlight 我有一个 ListBox 我将其简化为以下 XAML
  • Swift:使用 UISearchController/Predicates 过滤结构数组

    想知道是否有人可以帮助我在 Swift 中使用谓词进行过滤 我有一个有点混乱的数据源 我用它来填充 UITableView 数据源是一个结构体数组 该结构体定义如下 struct Exercises let category String
  • Azure 搜索突出显示带双引号的短语

    我们有一个天蓝色的Web应用程序 其中有一个搜索框 当我们输入带双引号的文本 例如 应用程序服务 时 它会正确列出带有 应 用程序服务 的记录 但它不仅突出显示 应用程序服务 而且还突出显示 应用程序服务 以及 服务 如果单独找到它们 可以
  • Docker 容器(不是 Docker 镜像)可以移动吗?

    我在以下网站上找到了此信息Docker 网站 Docker 容器可以运行 启动 停止 移动和删除 据我所知 Docker Images 可以移动 而 Docker Containers 则不能 但上面的信息明显位于 Docker 容器 标题
  • 错误的欧几里得距离 H2O 计算 R

    我使用 H2O 和 R 来计算 2 个 data frames 之间的欧几里德距离 set seed 121 create the data df1 lt data frame matrix rnorm 1000 ncol 10 df2 l
  • before_create 仍然保存

    在一切之前我要感谢你的帮助 我有一个这样的模型 attr protected nil belongs to product belongs to user before create add ammount def carted produ
  • 对于嵌入式应用程序从 std::string 切换到 std::wstring?

    到目前为止 我一直在嵌入式系统 路由器 交换机 电信设备等 的 C 应用程序中使用 std string 对于下一个项目 我正在考虑从 std string 切换到 std wstring 以支持 Unicode 例如 这将允许最终用户在命
  • 使用 vbscript 隐藏打开指定 url 和指定浏览器的链接

    我想转换这个批处理命令 start msedge exe new window https www google com 到 vbscript 文件 这样我就可以隐藏地打开它 我试过这个 Set WshShell WScript Creat
  • Pdf 的字段应在 asp.net 中使用 itextsharp 保持可编辑状态

    我有一个可填写的pdf 其中我有几个文本框 我使用以下代码 itextsharp 填充这些字段 DataTable dt new DataTable String pdfPath1 Server MapPath pdfs transmitt
  • 大文字显得模糊

    我正在使用 SFML 1 6 制作一个小游戏 我需要显示一些文本 所以我使用sf String班级 问题是 当我将尺寸增加到 96pt 时 边缘显得有点模糊 不过 当我增加 Microsoft Word 中的文本大小时 它看起来非常干净并且
  • 如何用Python四舍五入到小数点后两位? [复制]

    这个问题在这里已经有答案了 我在这段代码的输出中得到了很多小数 华氏度到摄氏度转换器 我的代码目前如下所示 def main printC formeln typeHere def typeHere global Fahrenheit tr
  • 使用 bash 脚本将密钥代码发送到 Xorg + wine

    如何将密钥代码发送到在 wine 下运行的 linux 中当前运行的应用程序 为了简单起见 我希望它位于 bash 下 使用名为xvkbd 它应该存在于每个 Linux 发行版中 语法很简单 xvkbd text line of keyco
  • CGAffineTransform 连接:适当的转换顺序

    我知道 每当我们想要对一个点同时应用一系列变换时 我们必须指定与我们想要感知的相反方向的序列 如果我想翻译 T 然后旋转 R 一个点x我们需要以串联矩阵结束RT 那么每个点都变换为 RT x 苹果转型文档显示 CGAffineTransfo
  • gnuplot:在for循环中设置线条样式

    我必须在同一张图上绘制几条曲线 我必须使用 for 循环来做到这一点 我想用线绘制前两条曲线 用点绘制其他曲线 我可以用线绘制所有曲线或用点绘制所有曲线 但不能在同一个 for 循环中进行更改 这是我的代码的相关部分 set style l
  • 停止后台工作者

    我的应用程序使用后台工作人员在循环内执行一些工作 我拥有它 以便在每次循环迭代时 它检查取消挂起是否为真 如果是 则中断循环 一切正常 我的应用程序在完成循环的当前迭代后停止处理 问题是我认为后台工作人员仍在运行 如果我单击按钮再次开始处理
  • 在 Hibernate 中持久化 LinkedList

    我试图保留一个具有 LinkedList 属性的类 但似乎无法正确执行 这是我的代码和映射 import java util LinkedList public class Stuff implements java io Serializ