Hibernate-实体详解
一.实体类的规范
1.必须有空参构造;用Hibernate向数据库获取数据并返回对象的过程中,实际是利用了反射机制创建对象,创建方式为空参构造
2.必须有属性
3.尽量使用包装类,能比基本类型多表示一个值null
4.实体类需要提供oid,与表的主键列对应(在hibernate中,对象是根据oid来区分的)
5.不要用final来修饰类;(在后期学习懒加载时,调用get方法并不会马上发送sql语句并封装成对象返回,它会先创建一个代理对象,该代理对象是通过cglib代理实现的,本质是对目标对象进行继承代理,因此如果用final进行修饰,则不能生成cglib代理对象)
二.主键类型
1.自然主键
>表中的某一业务列符合主键的定义,可作为自然主键;比如身份证
2.代理主键
>表中存在一列没有业务意义的字段,该列没有任何意义
三.主键生成策略
1.一般使用native作为主键生成策略,如果表中的主键列必须得使用字符串类型,就得考虑uuid和assigned
2.increment是线程不安全的,因为它是对共享资源进行先查询后操作的方式,当多线程时容易造成数据行被覆盖
四.其他注意事项
1.需要hibernate来操作的表,必须提供主键列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~