使用hibernate 提取属性 hibernate 注解@Formula
2023-09-27 14:29:21 时间
1 关于hibernate的@Formula用法和作用可以参照别的文章
2 hibernate提取属性也叫做计算属性,该属性值是一个值读属性,是通过使用sql语句获取得到的,常用的是统计数据
3 案例:我有一个employee实体类,该类有主键Id或name,月薪水(monthlySalary)等属性(字段),你现在有一个想法想要获取该employee的年薪,计算方式是月薪*12个月=年薪。
1 关于hibernate的@Formula用法和作用可以参照别的文章
mybatis的association标签传多个参数 association标签里面的column以对象的形式传过去,接收的时候把parameterType改为 其中 id 和 name 是对应你表的字段,两个 param 名字随便定义
MyBatis在生成update语句时若使用if标签,如果前面的if没有执行,则可能导致有多余逗号的错误。 使用set标签可以将动态的配置SET 关键字,和剔除追加到条件末尾的任何不相关的逗号。
Hibernate-ORM:07.Hibernate中的参数绑定 ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客会讲解Hibernate中的参数绑定,就是相当于sql语句中的where后面的条件 一,讲解概述:
1 关于hibernate的@Formula用法和作用可以参照别的文章
2 hibernate提取属性也叫做计算属性,该属性值是一个值读属性,是通过使用sql语句获取得到的,常用的是统计数据
3 案例:我有一个employee实体类,该类有主键Id或name,月薪水(monthlySalary)等属性(字段),你现在有一个想法想要获取该employee的年薪,计算方式是月薪*12个月=年薪。
package net.ozar.exp.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="EMPLOYEE") public class Employee implements java.io.Serializable { private static final long serialVersionUID = -7311873726885796936L; @Column(name="ID") private Integer id; @Column(name="FIRST_NAME", length=31) private String firstName; @Column(name="LAST_NAME", length=31) private String lastName; @Column(name="MONTHLY_SALARY") private float monthlySalary; public Employee() { // getters and setters // ... public float getMonthlySalary() { return monthlySalary; public void setMonthlySalary(float monthlySalary) { this.monthlySalary = monthlySalary; /* This artificial property - as I call it - is a kind of a calculated property, but not with Hibernate derived property support - not just yet */ public float getYearlySalary() { return this.monthlySalary * 12; }4 上面这个是没有加入hibernate @@Formula支持的用法,现在我们加入这个注解实现:
package net.ozar.exp.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import org.hibernate.annotations.Formula; @Entity @Table(name="EMPLOYEE") public class Employee implements java.io.Serializable { private static final long serialVersionUID = -7311873726885796936L; @Column(name="ID") private Integer id; @Column(name="FIRST_NAME", length=31) private String firstName; @Column(name="LAST_NAME", length=31) private String lastName; @Column(name="MONTHLY_SALARY") private float monthlySalary; @Formula("MONTHLY_SALARY*12") private float yearlySalary; public Employee() { public Integer getId() { return id; public void setId(Integer id) { this.id = id; public String getFirstName() { return firstName; public void setFirstName(String firstName) { this.firstName = firstName; public String getLastName() { return lastName; public void setLastName(String lastName) { this.lastName = lastName; public float getMonthlySalary() { return monthlySalary; public void setMonthlySalary(float monthlySalary) { this.monthlySalary = monthlySalary; public float getYearlySalary() { return yearlySalary; }5 注意到上面这个案例的@Formla的值是关联到“MONTHLY_SALARY”而yearlySalry属性是没有存储如数据库的。
6 一些更为复杂用法
@Formula("(select min(l.creation_date) from Logs l where l.customer_id = id)") private Date firstLoginDate;注意:最後面的customer_id=id中后面的id的值也就当前对象的id值
mybatis的association标签传多个参数 association标签里面的column以对象的形式传过去,接收的时候把parameterType改为 其中 id 和 name 是对应你表的字段,两个 param 名字随便定义
MyBatis在生成update语句时若使用if标签,如果前面的if没有执行,则可能导致有多余逗号的错误。 使用set标签可以将动态的配置SET 关键字,和剔除追加到条件末尾的任何不相关的逗号。
Hibernate-ORM:07.Hibernate中的参数绑定 ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客会讲解Hibernate中的参数绑定,就是相当于sql语句中的where后面的条件 一,讲解概述:
相关文章
- 5 -- Hibernate的基本用法 --4 7 二级缓存相关属性
- 5 -- Hibernate的基本用法 --4 3 JDBC连接属性
- Android开发之EditText属性详解
- Xamarin XAML语言教程使用属性设置进度条的当前进度
- 《Linux/UNIX OpenLDAP实战指南》——1.5 属性
- ExtJS--学习--window窗体属性--解决重复窗体事件---子组件的添加---工具条tbar
- JS 中如何优雅的使用多层嵌套属性而不会发生报错
- easy ui window 相关属性
- es6中class类的静态方法、实例方法、实例属性、(静态属性)
- 浅析 postMessage 方法介绍、如何接收数据(监听message事件及其属性介绍)、使用postMessage的安全注意事项、具体使用方式(父子页面如何互发消息、接收消息)
- 前端技术:vue(计算属性+监视)
- JS window.open()属性
- Vue学习第23天 —— Vuex中getters详细讲解及使用案例,与computed计算属性对比
- SpringBlade bug 为id添加自增长属性(已改)