首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在spring引导中存储一个xml节点的多个值?

如何在spring引导中存储一个xml节点的多个值?
EN

Stack Overflow用户
提问于 2018-09-04 03:08:37
回答 1查看 462关注 0票数 0

我有来自web服务的XML响应,格式如下:

代码语言:javascript
运行
AI代码解释
复制
<main-node>
    <node>
        <id>101</id>
        <name>Test</name>
        <address>test</address>
        <address>test1</address>
    </node>
    <node>
       <id>102</id>
       <name>Jack</name>
       <address>New York</address>
       <address>London</address>
       <address>Canberra</address>
       <address>Cape Town</address>
    </node>
</main-node>

我创建了POJO类并很好地映射了它们,并且能够将值存储在MySQL数据库中。但是,对于address字段,只保存了一个地址。如何在数据库中存储多个值?

这是我前面提到的XML结构使用的POJO:

代码语言:javascript
运行
AI代码解释
复制
@Entity
@XmlRootElement(name="node")
public class Node{
    @Id
    private int id;
    private String name;
    private String address;
    //Getters and Setters
}

我已经尝试过将String[]用于address字段,但这也不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-04 03:56:01

问题是address字段将映射到一个名为address in MySQL的列,而数据库列只能包含一个值。

解决方案是创建一对多的关系,这意味着在node表旁边需要一个单独的node_id表,该表至少包含一个node_idaddress字段。

现在,对于JPA映射,您可以选择一个完整的@OneToMany/@ManyToOne映射,但在本例中,使用@ElementCollection可能更有趣:

代码语言:javascript
运行
AI代码解释
复制
@Entity
@XmlRootElement(name = "node")
public class Node {
    @Id
    private int id;
    private String name;
    @ElementCollection
    @CollectionTable(
        name="NODE_ADDRESS",
        joinColumns=@JoinColumn(name="NODE_ID")
    )
    @Column(name = "ADDRESS")
    private List<String> address;

    // Getters + Setters
}

由于Hibernate (默认的JPA提供程序)不能映射到数组,所以需要为address字段使用一个address。如果您不喜欢这样,您必须创建多个类,一个用于XML映射,另一个用于JPA映射。

注意到:您缺少元素的映射,所以您还必须创建一个MainNode类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52164940

复制
相关文章
js获取网页屏幕可视区域高度
document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度
kirin
2020/12/23
9.6K0
js获取网页屏幕可视区域高度
基于OpenCV的特定区域提取
今天我们将一起探究如何使用OpenCV和Python从图像中提取感兴趣区域(ROI)。
小白学视觉
2020/08/28
2.9K0
Oracle 定时获取并保存StatPack 报告
StatsPack 是9i使用的性能分析工具,如果建立数据库的时候没有,可以手动创建
bsbforever
2020/08/19
3500
PHP 获取网络图片资源并保存
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/82893958
泥豆芽儿 MT
2018/10/09
2.4K0
PHP 获取网络图片资源并保存
Linux使用VMware保存快照
请注意,在恢复快照时,任何在创建快照之后对虚拟机所做的更改都将被丢弃,并还原为快照创建时的状态。因此,请确保在执行恢复操作之前备份重要数据。
红目香薰
2023/10/11
7580
Linux使用VMware保存快照
实战 | OpenCV绘制斜矩形并截取区域ROI保存(附代码)
在图像处理中正矩形ROI方便绘制和截取,使用广泛。但在某些情形中,目标本身是倾斜的(或者带角度的),这时候我们如何截取目标并保存呢?在OpenCV中我们可以使用RotateRect类和不规则ROI提取方法来实现。
Color Space
2021/12/08
5.3K0
实战 | OpenCV绘制斜矩形并截取区域ROI保存(附代码)
保存并退出vi的命令_vim退出并保存
vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim
全栈程序员站长
2022/11/11
8.2K0
win10 uwp 截图 获取屏幕显示界面保存图片 水印
本文主要讲如何保存我们的屏幕显示的控件,保存为图片。这个也就是截图,截我们应用显示的,我们应用之外的不截图。
林德熙
2018/09/18
1.3K0
win10 uwp 截图 获取屏幕显示界面保存图片
            水印
FormattableString 取代特定区域字符串
有些软件系统是针对全球来开发的,因此一些字符串需要根据不同地区不同语言做出特定的处理。如果针对不同地区不同用语言分别编写字符串处理方法的话代码量是巨大的。那么这个时候我们可以用到内插字符串深层的特性,C# 会把内插字符串的结果隐式的转换成 string 或者 FormattableString 。 例如下面这个例子,内插字符串的结果将是 string 类型:
喵叔
2020/09/08
1.4K0
Jenkins获取jar包的快照号
主要用于打jar包的工程,显示快照包的名字。当jar打包完成后,会在target目录中,截取快照名。
陈不成i
2021/06/03
8300
获取点击的区域范围
点击的元素在哪个像素范围 父组件 <div> <div>外部</div> <TestRef ref="testRef"></TestRef> </div> import TestRef from "@/components/TestRef.vue"; mounted() { let obj = {leftRef:"",rightRef:""} console.log("外部mounted") console.log(this.$refs.testR
tianyawhl
2022/11/14
1.3K0
总结 | 基于OpenCV提取特定区域方法汇总
今天我们将一起探究如何使用OpenCV和Python从图像中提取感兴趣区域(ROI)。
AI算法与图像处理
2020/08/28
4.3K0
[翻译]Android教程-保存数据-支持不同的屏幕
为了声明你想要使用在不同屏幕上的布局和位图 , 你必须在不同的路径中放置这些可选的资源 , 这类似于针对不同的语言字符串你所要做的事情 . 你也要也要意识到屏幕方向(横向或者纵向)也要被考虑成一种屏幕尺寸,所以许多的应用会修改布局来优化用户在不同的屏幕方向上的体验 .
LeoXu
2018/08/15
6500
PHP设置环境变量,并通过$_ENV获取【php】
通过 /etc/profile, /etc/environment, ~/.profile,~/.bash_profile等文件进行设置
sinnoo
2020/11/13
3.1K0
shell正则提取字符串中的数字并保存到变量中
tr是translate的缩写,主要用于删除文件中的控制字符,或者进行字符转换
休辞醉倒
2019/07/25
7.9K0
Tensorflow:模型变量保存
[1]Tensorflow实战Google深度学习框架: https://github.com/caicloud/tensorflow-tutorial/tree/master/Deep_Learning_with_TensorFlow/1.4.0
演化计算与人工智能
2020/08/14
1.3K0
[029]如何获取屏幕帧率
在王小二图解Android【006】高帧率屏幕这期的视频中,我给大家揭秘今年所有安卓旗舰都会吹的高帧率屏幕,其实高帧率屏幕不需要应用开发人员去主动适配,只要应用能在当前的硬件配置下,规定时间(1s/屏幕帧率)中完成一帧的绘制就可以了。
王小二
2020/06/08
2.2K0
使用OpenCV调用摄像头,显示图片,获取视频并保存
友情链接:https://blog.csdn.net/u012348774/article/details/78255130
种花家的奋斗兔
2020/11/13
4.1K0
点击加载更多

相似问题

让Matplotlib显示图形

10

无法让div以内联方式显示

12

无法让列表以内联方式显示?

22

无法让div以内联方式显示

30

无法让css列表以内联方式显示

11
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文