hibernate annotation笔记

school和userMember是一对多关系,一些基本配置就不写了:
SchoolInfo.java
 
  1. import javax.persistence.CascadeType;  
  2. import javax.persistence.Column;  
  3. import javax.persistence.Entity;  
  4. import javax.persistence.FetchType;  
  5. import javax.persistence.GeneratedValue;  
  6. import javax.persistence.Id;  
  7. import javax.persistence.OneToMany;  
  8. import javax.persistence.Table;  
  9. import javax.persistence.Temporal;  
  10. import javax.persistence.TemporalType;  
  11.   
  12. import org.hibernate.annotations.Formula;  
  13. import org.hibernate.annotations.GenericGenerator;  
  14.   
  15. @Entity  
  16. @Table(name = "school_info")  
  17. public class SchoolInfo implements java.io.Serializable {  
  18.   
  19.     @Id  
  20.     @GeneratedValue(generator = "system-uuid")  
  21.     @GenericGenerator(name = "system-uuid", strategy = "uuid")  
  22.     private String id;//hibernate的uuid机制,生成32为字符串  
  23.   
  24.     @Column(name = "actcodeId", updatable = false, nullable = true, length = 36)  
  25.     private String actcodeId;  
  26.   
  27.     @Formula("select COUNT(*) from school_info")  
  28.     private int count;  
  29.   
  30.     @Temporal(TemporalType.TIMESTAMP)//不用set,hibernate会自动把当前时间写入  
  31.     @Column(updatable = false, length = 20)  
  32.     private Date createTime;  
  33.   
  34.     @Temporal(TemporalType.TIMESTAMP)  
  35.     private Date updateTime;// 刚开始我默认insertable=false,但会读取出错提示如下:  
  36.     // Value '0000-00-00' can not be represented as java.sql.Timestamp  
  37.   
  38.     // mappedBy="school"就相当于inverse=true,(mappedBy指定的是不需要维护关系的一端)  
  39.     // 应该注意的是mappedBy值对应@ManyToOne标注的属性,我刚开始写成"schoolId",让我郁闷了好一会
  40.     @OneToMany(mappedBy = "school", cascade = CascadeType.ALL, fetch = FetchType.EAGER, targetEntity = UserMember.class)  
  41.     // 用范性的话,就不用targetEntity了  
  42.     private List<usermember> users = </usermember>new ArrayList<usermember>();  </usermember>
  43.       
  44. }  
@GeneratedValue(strategy=GenerationType.AUTO)我们常用的自增长机制,我这里采用的是hibernate的uuid生成机制.
需要注意的是import javax.xx.Entity ,而不是org.hibernate.xx.Entity。

郁闷的是我上面用到@Formula,生成的sql竟然是'select COUNT(*) from school_info as formula0_ from school_info schoolinfo0_,当然不能执行了,寻求正解中~!!!!!!!!!

UserMember.java(前面引入的包已经贴过了,下面就不贴了)
 
@Entity   @Table(name = "teacher_info")//实体类和数据库表名不一致时,才用这个   public class UserMember implements java.io.Serializable {          @Id       @GeneratedValue(generator = "system-uuid")       @GenericGenerator(name = "system-uuid", strategy = "uuid")       private String id;          @Column(updatable = false, nullable = false, length = 20)       private String logonName;              @Temporal(TemporalType.TIMESTAMP)       @Column(updatable = false, length = 20)       private Date createTime;          @Temporal(TemporalType.TIMESTAMP)       private Date updateTime;          @ManyToOne(cascade = { CascadeType.MERGE })       @JoinColumn(name = "schoolId")       private SchoolInfo school;       //注意该类就不用声明schoolId属性了,如果不用@JoinColumn指明关联的字段,hibernate默认会是school_id.      }  

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制方法。通过结合数据驱动技术与Koopman算子理论,将非线性系统动态近似为高维线性系统,进而利用递归神经网络(RNN)建模并实现系统行为的精确预测。文中详细阐述了模型构建流程、线性化策略及在预测控制中的集成应用,并提供了完整的Matlab代码实现,便于科研人员复现实验、优化算法并拓展至其他精密控制系统。该方法有效提升了纳米级定位系统的控制精度与动态响应性能。; 适合人群:具备自动控制、机器学习或信号处理背景,熟悉Matlab编程,从事精密仪器控制、智能制造或先进控制算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①实现非线性动态系统的数据驱动线性化建模;②提升纳米定位平台的轨迹跟踪与预测控制性能;③为高精度控制系统提供可复现的Koopman-RNN融合解决方案; 阅读建议:建议结合Matlab代码逐段理解算法实现细节,重点关注Koopman观测矩阵构造、RNN训练流程与模型预测控制器(MPC)的集成方式,鼓励在实际硬件平台上验证并调整参数以适应具体应用场景。
提供了一套完整的基于51单片机的DDS(直接数字频率合成)信号波形发生器设计方案,适合电子爱好者、学生以及嵌入式开发人员学习和实践。该方案详细展示了如何利用51单片机(以AT89C52为例)结合AD9833 DDS芯片来生成正弦波、锯齿波、三角波等多种波形,并且支持通过LCD12864显示屏直观展示波形参数或状态。 内容概述 源码:包含完整的C语言编程代码,适用于51系列单片机,实现了DDS信号的生成逻辑。 仿真:提供了Proteus仿真文件,允许用户在软件环境中测试整个系统,无需硬件即可预览波形生成效果。 原理图:详细的电路原理图,指导用户如何连接单片机、DDS芯片及其他外围电路。 PCB设计:为高级用户准备,包含了PCB布局设计文件,便于制作电路板。 设计报告:详尽的设计文档,解释了项目背景、设计方案、电路设计思路、软硬件协同工作原理及测试结果分析。 主要特点 用户交互:通过按键控制波形类型和参数,增加了项目的互动性和实用性。 显示界面:LCD12864显示屏用于显示当前生成的波形类型和相关参数,提升了项目的可视化度。 教育价值:本资源非常适合教学和自学,覆盖了DDS技术基础、单片机编程和硬件设计多个方面。 使用指南 阅读设计报告:首先了解设计的整体框架和技术细节。 环境搭建:确保拥有支持51单片机的编译环境,如Keil MDK。 加载仿真:在Proteus中打开仿真文件,观察并理解系统的工作流程。 编译与烧录:将源码编译无误后,烧录至51单片机。 硬件组装:根据原理图和PCB设计制造或装配硬件。 请注意,本资源遵守CC 4.0 BY-SA版权协议,使用时请保留原作者信息及链接,尊重原创劳动成果。
【四轴飞行器的位移控制】控制四轴飞行器的姿态和位置设计内环和外环PID控制回路(Simulink仿真实现)内容概要:本文档详细介绍了基于Simulink仿真实现的四轴飞行器位移控制方法,重点在于设计内外环PID控制回路以实现对四轴飞行器姿态和位置的精确控制。文中阐述了控制系统的基本架构,内环负责稳定飞行器的姿态(如俯仰、滚转和偏航),外环则用于控制飞行器的空间位置和轨迹跟踪。通过Simulink搭建系统模型,实现控制算法的仿真验证,帮助理解飞行器动力学特性与PID控制器参数调节之间的关系,进而优化控制性能。; 适合人群:具备自动控制理论基础和Simulink使用经验的高校学生、科研人员及从事无人机控制系统的工程师;尤其适合开展飞行器控制、机器人导航等相关课题的研究者。; 使用场景及目标:①掌握四轴飞行器的动力学建模与控制原理;②学习内外环PID控制结构的设计与参数整定方法;③通过Simulink仿真验证控制策略的有效性,为实际飞行测试提供理论支持和技术储备;④应用于教学实验、科研项目或毕业设计中的控制系统开发。; 阅读建议:建议读者结合Simulink软件动手实践,逐步构建控制系统模型,重点关注PID参数对系统响应的影响,同时可扩展学习姿态传感器融合、轨迹规划等进阶内容,以全面提升飞行器控制系统的综合设计能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值