`
k1280000
  • 浏览: 206316 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

using collections in Entity Fields and Properties(映射集合类到数据库)

    博客分类:
  • JPA
 
阅读更多

Using Collections in Entity Fields and Properties
Collection-valued persistent fields and properties must use the supported Java collection
interfaces regardless of whether the entity uses persistent fields or properties. The following
collection interfaces may be used:
■ java.util.Collection
■ java.util.Set
Entities
Chapter 32 • Introduction to the Java Persistence API 585
■ java.util.List
■ java.util.Map
If the entity class uses persistent fields, the type in the preceding method signatures must be one
of these collection types. Generic variants of these collection types may also be used. For
example, if it has a persistent property that contains a set of phone numbers, the Customer
entity would have the following methods:
Set<PhoneNumber> getPhoneNumbers() { ... }
void setPhoneNumbers(Set<PhoneNumber>) { ... }
If a field or property of an entity consists of a collection of basic types or embeddable classes, use
the javax.persistence.ElementCollection annotation on the field or property.
The two attributes of @ElementCollection are targetClass and fetch. The targetClass
attribute specifies the class name of the basic or embeddable class and is optional if the field or
property is defined using Java programming language generics. The optional fetch attribute is
used to specify whether the collection should be retrieved lazily or eagerly, using the
javax.persistence.FetchType constants of either LAZY or EAGER, respectively. By default, the
collection will be fetched lazily.
The following entity, Person, has a persistent field, nicknames, which is a collection of String
classes that will be fetched eagerly. The targetClass element is not required, because it uses
generics to define the field.
@Entity
public class Person {
...
@ElementCollection(fetch=EAGER)
protected Set<String> nickname = new HashSet();
...
}
Collections of entity elements and relationships may be represented by java.util.Map
collections. A Map consists of a key and a value.
When using Map elements or relationships, the following rules apply.
■ The Map key or value may be a basic Java programming language type, an embeddable class,
or an entity.
■ When the Map value is an embeddable class or basic type, use the @ElementCollection
annotation.
■ When the Map value is an entity, use the @OneToMany or @ManyToMany annotation.
■ Use the Map type on only one side of a bidirectional relationship.
If the key type of a Map is a Java programming language basic type, use the annotation
javax.persistence.MapKeyColumn to set the column mapping for the key. By default, the name
Entities
586 The Java EE 6Tutorial • July 2012
attribute of @MapKeyColumn is of the form RELATIONSHIP-FIELD/PROPERTY-NAME_KEY.
For example, if the referencing relationship field name is image, the default name attribute is
IMAGE_KEY.
If the key type of a Map is an entity, use the javax.persistence.MapKeyJoinColumn annotation.
If the multiple columns are needed to set the mapping, use the annotation
javax.persistence.MapKeyJoinColumns to include multiple @MapKeyJoinColumn
annotations. If no @MapKeyJoinColumn is present, the mapping column name is by default set to
RELATIONSHIP-FIELD/PROPERTY-NAME_KEY. For example, if the relationship field name is
employee, the default name attribute is EMPLOYEE_KEY.
If Java programming language generic types are not used in the relationship field or property,
the key class must be explicitly set using the javax.persistence.MapKeyClass annotation.
If the Map key is the primary key or a persistent field or property of the entity that is the Map
value, use the javax.persistence.MapKey annotation. The @MapKeyClass and @MapKey
annotations cannot be used on the same field or property.
If the Map value is a Java programming language basic type or an embeddable class, it will be
mapped as a collection table in the underlying database. If generic types are not used, the
@ElementCollection annotation’s targetClass attribute must be set to the type of the Map
value.
If the Map value is an entity and part of a many-to-many or one-to-many unidirectional
relationship, it will be mapped as a join table in the underlying database. A unidirectional
one-to-many relationship that uses a Map may also be mapped using the @JoinColumn
annotation.
If the entity is part of a one-to-many/many-to-one bidirectional relationship, it will be mapped
in the table of the entity that represents the value of the Map. If generic types are not used, the
targetEntity attribute of the @OneToMany and @ManyToMany annotations must be set to the
type of the Map value.
分享到:
评论

相关推荐

    基于西门子S7-200 PLC和组态王的八层电梯控制系统设计与实现

    内容概要:本文详细介绍了基于西门子S7-200 PLC和组态王软件构建的八层电梯控制系统。首先阐述了系统的硬件配置,包括PLC的IO分配策略,如输入输出信号的具体分配及其重要性。接着深入探讨了梯形图编程逻辑,涵盖外呼信号处理、轿厢运动控制以及楼层判断等关键环节。随后讲解了组态王的画面设计,包括动画效果的实现方法,如楼层按钮绑定、轿厢移动动画和门开合效果等。最后分享了一些调试经验和注意事项,如模拟困人场景、防抖逻辑、接线艺术等。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是对PLC编程和组态软件有一定基础的人群。 使用场景及目标:适用于需要设计和实施小型电梯控制系统的工程项目。主要目标是帮助读者掌握PLC编程技巧、组态画面设计方法以及系统联调经验,从而提高项目的成功率。 其他说明:文中提供了详细的代码片段和调试技巧,有助于读者更好地理解和应用相关知识点。此外,还强调了安全性和可靠性方面的考量,如急停按钮的正确接入和硬件互锁设计等。

    无人驾驶领域中动力学MPC算法实现蛇形线路径跟踪

    内容概要:本文深入探讨了无人驾驶车辆使用动力学MPC(模型预测控制)算法进行蛇形线路径跟踪的技术细节。首先介绍了蛇形线的特点及其对无人驾驶车辆带来的挑战,随后详细讲解了动力学MPC算法的基础理论,包括车辆状态表示、运动方程建模以及控制输入的选择。接着重点阐述了如何通过定义合适的目标函数并加入适当的约束条件来优化MPC算法,使其能够高效地完成蛇形线路径跟踪任务。此外,文中还讨论了一些常见的错误做法和技术改进措施,如引入航向角误差补偿项、采用松弛变量处理约束条件等。最后,作者分享了多个实用的小技巧,例如预测时域内的速度适配和平滑处理、适当降低控制频率以提高跟踪精度等。 适合人群:对无人驾驶技术和控制算法感兴趣的科研人员、工程师及高校学生。 使用场景及目标:适用于研究无人驾驶车辆路径规划与控制领域的项目开发,旨在帮助读者掌握动力学MPC算法的具体应用方法,从而更好地解决实际工程问题。 其他说明:文章不仅提供了详细的理论推导和代码实现,还结合具体案例进行了充分的实验验证,确保所提出的解决方案具有较高的可行性和可靠性。

    BYVIN电动四轮车控制器代码详解:STM32F4硬件与软件设计

    内容概要:本文详细介绍了BYVIN(比德文)电动四轮车控制器的技术细节,涵盖了硬件设计和软件实现两大部分。硬件方面,提供了PCB文件和PDF原理图,展示了电路板布局、元件位置及电路连接关系。软件方面,代码结构清晰,模块化设计良好,包括初始化、速度数据处理、PWM配置、故障保护机制等功能模块。文中还提到了一些独特的设计细节,如PWM死区补偿、故障分级处理、卡尔曼滤波估算电池电量等。此外,代码仓库中还包括了详细的注释和调试技巧,如CAN总线实时数据传输、硬件级关断+软件状态机联动等。 适合人群:具备一定嵌入式开发基础的研发人员,尤其是对STM32F4系列单片机和电动车辆控制系统感兴趣的工程师。 使用场景及目标:适用于希望深入了解电动四轮车控制器设计原理和技术实现的研究人员和开发者。目标是掌握电动四轮车控制器的硬件设计方法和软件编程技巧,提升实际项目开发能力。 其他说明:本文不仅提供了代码和技术细节,还分享了许多实战经验和设计思路,有助于读者更好地理解和应用这些技术。

    基于S7 300 PLC与组态王的车门包边机控制系统设计及应用

    内容概要:本文详细介绍了基于S7 300 PLC和组态王的车门包边机控制系统的设计与实现。主要内容涵盖I/O分配、梯形图编程、接线图设计以及组态王的画面构建。文中通过具体的实例展示了如何利用PLC实现车门包边机的精确控制,包括启动逻辑、电机与气缸控制逻辑等。此外,还讨论了接线图中的防干扰措施、梯形图中的特殊逻辑设计以及组态王中的动态效果实现方法。最终,通过合理的硬件配置和软件编程,实现了高效、稳定且直观的车门包边机控制系统。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是熟悉PLC编程和组态软件使用的专业人士。 使用场景及目标:适用于汽车制造生产线中的车门包边机控制系统的开发与维护。目标是提高生产设备的自动化水平,增强系统的稳定性和可靠性,减少人工干预,提升生产效率。 其他说明:本文不仅提供了详细的理论讲解,还包括了许多实际操作中的经验和技巧,有助于读者更好地理解和应用相关技术。

    基于C#实现的照片自动分拣程序+源码+项目文档(毕业设计&课程设计&项目开发)

    基于C#实现的照片自动分拣程序+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 简单易用的照片自动分类工具,它能够自动读取照片的拍摄日期信息,并按照年月结构将照片整理到对应的文件夹中,帮助用户轻松管理大量照片文件。 主要功能 自动分类:根据照片的拍摄时间,自动将照片分类到对应的年月文件夹中 多格式支持:支持 JPG、JPEG、PNG、GIF 等常见图片格式 智能处理: 自动读取照片 EXIF 信息获取拍摄日期 当无法读取 EXIF 信息时,自动使用文件创建时间 智能处理文件重名冲突 高效处理: 采用并行处理技术,提高大量照片的处理速度 优化文件读取和移动操作,减少系统资源占用 自动调整并行任务数量,平衡系统负载

    KUKA系统软件安装手册.pdf

    KUKA机器人相关文档

    Tripple Farm:Match 3 Combination Game Complete Project 合成小镇三消Unity合成消除游戏项目游戏插件模版C#

    Tripple Farm:Match 3 Combination Game Complete Project 合成小镇三消Unity合成消除游戏项目游戏插件模版C# 支持Unity2020.3.4或更高 您知道像三合镇这样的著名益智游戏,并且您想制作一个自己的游戏。就是这样。这个包正好适合您。 这是一个完整的项目,您可以在零分钟内将其上传到 appstore 或 googleplay 商店。 基本规则: 3个或以上相同的道具可以匹配升级为新的道具。动物如果被困住,也可以合并。 羽毛: -移动(android/ios)就绪。 - 包含所有源代码。 -超过 12 座建筑/军团需要升级。 -三种特殊物品可以提供帮助。 - 三个不同的主题(场景和动物) -unity iap 支持 -Unity UI -广告位已准备好 -包含详细文档

    基于下垂控制的三相逆变器电压电流双闭环仿真及MATLAB/Simulink/PLECS实现

    内容概要:本文详细介绍了基于下垂控制的三相逆变器电压电流双闭环控制的仿真方法及其在MATLAB/Simulink和PLECS中的具体实现。首先解释了下垂控制的基本原理,即有功调频和无功调压,并给出了相应的数学表达式。随后讨论了电压环和电流环的设计与参数整定,强调了两者带宽的差异以及PI控制器的参数选择。文中还提到了一些常见的调试技巧,如锁相环的响应速度、LC滤波器的谐振点处理、死区时间设置等。此外,作者分享了一些实用的经验,如避免过度滤波、合理设置采样周期和下垂系数等。最后,通过突加负载测试展示了系统的动态响应性能。 适合人群:从事电力电子、微电网研究的技术人员,尤其是有一定MATLAB/Simulink和PLECS使用经验的研发人员。 使用场景及目标:适用于希望深入了解三相逆变器下垂控制机制的研究人员和技术人员,旨在帮助他们掌握电压电流双闭环控制的具体实现方法,提高仿真的准确性和效率。 其他说明:本文不仅提供了详细的理论讲解,还结合了大量的实战经验和调试技巧,有助于读者更好地理解和应用相关技术。

    EP100伺服驱动器C源代码优化与硬件改进:从Bug修复到性能增强

    内容概要:本文详细记录了作者对EP100伺服驱动器进行的一系列优化和改进。主要内容包括:修复原厂代码中的多个致命Bug,如定时器配置冲突、PWM信号不触发、电流采样误差等问题;优化电机启动、增量编码器找零、串口通信、相序反转等功能;并对硬件进行了改进,如调整MOS管布局、优化滤波电容位置等。通过这些改动,显著提高了系统的稳定性、精度和可靠性。 适合人群:具有一定嵌入式系统开发经验的工程师,尤其是熟悉STM32单片机和伺服控制系统的技术人员。 使用场景及目标:适用于需要对现有伺服驱动器进行性能优化和技术改造的项目。主要目标是提高系统的稳定性和精度,解决原厂代码中存在的各种问题,确保伺服驱动器能够在高负载条件下正常工作。 其他说明:文中提供了详细的代码片段和硬件改进措施,帮助读者更好地理解和应用相关技术。同时,作者分享了许多实际操作中的经验和技巧,对于从事类似项目的工程师具有很高的参考价值。

    光储直流微电网中基于Simulink的蓄电池与超级电容协同仿真实现及MPPT控制优化

    内容概要:本文详细介绍了光储直流微电网中利用Simulink进行仿真建模的方法,重点探讨了光伏系统的最大功率点跟踪(MPPT)控制以及蓄电池和超级电容的功率分配策略。文中提供了具体的MATLAB代码实现,包括MPPT控制算法和低通滤波器(LPF)用于功率分配的具体参数设置。此外,还讨论了仿真过程中遇到的问题及解决方案,如避免系统震荡、优化直流母线电压控制等。 适合人群:从事电力电子、新能源发电、微电网研究的技术人员和研究人员,尤其适用于有一定Simulink使用经验和MATLAB编程基础的人群。 使用场景及目标:①理解和掌握光储直流微电网的工作原理;②学习如何使用Simulink搭建完整的光储并网系统仿真模型;③优化MPPT控制算法和功率分配策略,提高系统的稳定性和效率。 其他说明:文章强调了参数整定的重要性,并分享了许多实用的经验和技术细节,对于希望深入研究光储直流微电网仿真的读者非常有价值。

    stm32 PWM学习专题

    stm32 PWM学习专题附代码

    2898702486frft2d.m

    2898702486frft2d.m

    基于单片机的八路温度循检汇编设计(51+SEG1x5+18B20x8+74h595x4)#0073

    包括:源程序工程文件、Proteus仿真工程文件、配套技术手册等 1、采用51/52单片机作为主控芯片; 2、采用汇编语言编程; 3、采用8个DS18B20传感器检测8路温度; 4、采用数码管循环显示通道号及温度值; 5、采用74HC595驱动显示;

    MATLAB图像处理GUI应用:基于Matlab的图像处理程序设计与实现

    内容概要:本文详细介绍了如何使用MATLAB GUI构建一个功能丰富的图像处理工具箱。该工具箱涵盖了图像的基本操作如灰度化、边缘检测、直方图均衡化等功能,并提供了实时对比和多种算法选择。文中不仅展示了具体的代码实现,还深入探讨了每种算法背后的原理和技术细节。例如,灰度化采用NTSC标准权重进行RGB到灰度的转换,边缘检测使用Sobel和Canny算子,直方图均衡化则强调了在HSV空间处理V通道的重要性。此外,作者分享了许多实践经验,包括性能优化技巧、异常处理以及不同算法在特定场景下的表现。 适合人群:具有一定MATLAB基础的开发者、图像处理领域的研究人员及爱好者。 使用场景及目标:① 学习MATLAB GUI编程及其在图像处理中的应用;② 掌握常见的图像处理算法及其优化方法;③ 构建自己的图像处理工具箱,用于科研或工程项目。 其他说明:文章配有详细的代码示例和理论解释,有助于读者更好地理解和掌握相关知识点。同时,文中提到的一些优化技巧和注意事项对于提高程序性能和稳定性非常有用。

    基于Simulink的BLDC无刷直流电机转速电流双闭环控制系统仿真设计与优化

    内容概要:本文详细介绍了如何使用Simulink搭建BLDC无刷直流电机的转速电流双闭环控制系统。首先,文章解释了电流环和转速环的设计要点,包括PI控制器参数的选择、电流采样的频率设置以及PWM生成模块的配置。接着,作者分享了一些实用的仿真技巧,如使用简化版卡尔曼滤波代替传统测速发电机、加入PWM载波频率的随机抖动以减少谐振噪声、以及针对常见错误的解决方案。此外,文中还提供了具体的MATLAB代码片段,帮助读者更好地理解和实现各个模块的功能。最后,文章强调了仿真过程中需要注意的关键点,如参数整定、故障注入模块的应用和仿真加速方法。 适合人群:从事电机控制研究的技术人员、电气工程专业的学生以及对BLDC电机仿真感兴趣的工程师。 使用场景及目标:适用于需要进行BLDC电机控制算法开发和测试的研究项目,旨在提高仿真效率并确保最终控制效果的稳定性。通过学习本文,读者能够掌握双闭环控制系统的搭建方法及其优化技巧。 其他说明:文中提供的代码和技巧均经过实际验证,具有较高的实用性。建议读者在实践中结合自身需求进行适当调整。

    微电网并离网下垂控制Simulink模型在MATLAB2018中的实现与优化

    内容概要:本文详细介绍了微电网并离网下垂控制Simulink模型的设计与实现,特别针对MATLAB 2018版本。模型涵盖分布式电源、负荷、储能装置及控制模块,通过下垂控制实现微电网在并网和离网模式间的平稳切换与稳定运行。文中提供了详细的代码示例,解释了下垂控制的关键参数设定及其对系统稳定性的影响。此外,还讨论了并离网切换逻辑、锁相环设计、滤波器参数选择等问题,并给出了仿真技巧和性能评估方法。 适合人群:从事电力系统研究、微电网控制技术研发的专业人士和技术爱好者。 使用场景及目标:①研究微电网并离网控制策略;②验证下垂控制算法的有效性;③优化微电网系统的动态响应和稳定性;④测试不同工况下的系统性能。 其他说明:该模型在MATLAB 2018中表现出色,能够作为可靠的研究工具,帮助研究人员深入了解并离网下垂控制的原理与应用。

    FPGA周期信号处理:两种Verilog实现方案及其应用分析

    内容概要:本文详细介绍了FPGA处理周期信号的两种主要方法:状态机和计数器。首先,通过对两个具体版本的Verilog代码进行解析,展示了不同的处理逻辑和技术细节。版本一采用简单的移位操作,适用于信号放大的场景;版本二引入计数器,能够实现周期信号的累加,适用于统计数据的应用。接着,文章深入探讨了状态机和计数器两种实现方式的特点与优劣。状态机版本虽然调试友好,但在高频信号处理时可能存在时序问题;计数器版本资源占用少,适合高频或占空比不固定的场景。此外,还提供了具体的性能实测对比,如资源占用、最大频率和抗干扰能力等方面的数据。最后,给出了实际项目的选型建议,强调了根据具体需求选择合适的实现方案的重要性。 适合人群:具有一定FPGA开发经验的研发人员,尤其是从事数字电路设计、嵌入式系统开发的技术人员。 使用场景及目标:①帮助开发者理解FPGA处理周期信号的基本原理;②提供两种常见实现方案的具体代码示例及解析;③指导开发者根据实际项目需求选择最合适的实现方式。 其他说明:文中不仅提供了理论分析,还结合了实际案例,分享了作者在调试过程中遇到的问题及解决方案,有助于读者更好地理解和应用相关技术。

    电力市场节点出清电价的Python实现与解析:基于LMP的简化模型及其应用

    内容概要:本文详细介绍了电力市场节点出清电价(LMP)的概念及其计算方法,特别关注了节点边际电价的形成机制。作者通过Python代码实现了多个简化模型,展示了不同约束条件下(如线路容量、爬坡率等)对电价的影响。首先,文章通过一个三节点系统的例子,讲解了如何利用线性规划工具linprog进行出清计算,并探讨了线路阻塞对电价的影响。接着,进一步讨论了机组运行约束(如爬坡率、启停成本等)对LMP的具体影响。此外,还提到了一些实际工程中的特殊情况,如网络损耗和逆向调度效应。最后,给出了几个实操建议,帮助初学者更好地理解和应用这些概念。 适合人群:对电力市场感兴趣的初学者,尤其是希望深入了解节点电价计算原理的技术人员。 使用场景及目标:适用于想要通过编程方式理解电力市场运作机制的学习者;目标是让读者能够独立构建并分析简单的电力市场出清模型,从而掌握LMP的基本概念和应用场景。 其他说明:文中提供了详细的代码示例,便于读者跟随练习。同时强调了理解LMP对于电力市场参与者的重要性,以及它在资源配置中的作用。

    并联型有源电力滤波器(APF)的dq0坐标系谐波检测与Simulink仿真实现

    内容概要:本文详细介绍了并联型有源电力滤波器(APF)在dq0坐标系下的谐波检测方法及其在Matlab/Simulink中的仿真实现。首先,通过Park变换将三相电流转换为旋转坐标系下的直流分量,再利用低通滤波器提取谐波分量。文中讨论了锁相环(PLL)、滤波器设计、电流跟踪策略以及补偿电流生成等关键技术,并提供了具体的代码实现和调试经验。此外,文章还分享了一些常见问题的解决方案,如电网电压跌落保护、死区补偿、THD优化等。 适合人群:从事电力电子、电力系统自动化领域的工程师和技术人员,尤其是对有源电力滤波器和电力谐波检测感兴趣的读者。 使用场景及目标:适用于希望深入了解APF工作原理及其实现方法的研究人员和工程师。通过学习本文,读者能够掌握如何在Simulink中构建APF仿真模型,进行谐波检测和补偿实验,从而提高电力系统的稳定性和效率。 其他说明:配套的参考文献和视频演示可以帮助读者更好地理解和实践相关技术。建议读者在实践中不断调整参数,以适应不同的应用场景。

    【KUKA 机器人资料】:KUKA软件基本操作.pdf

    KUKA机器人相关文档

Global site tag (gtag.js) - Google Analytics