Property元素中的formula允许对象属性包含导出值,比如sum、average、max等的结果。如:
- <property name="averagePrice" formula="(select avg(pc.price) from PriceCatalogue pc, SelectedItems si where si.priceRefID=pc.priceID)"/>
此外,formula还可以基于当前记录的特定属性值从另一个表检索值。例如:
代码
- <property name="currencyName" formula="(select cur.name from currency cur where cur.id= currencyID)"/>
代码
- <property name="schNum" formula="(select max(a.schoolNumb) from sys_act_code as a)"/>
注意:
1,formula="()",里面的是sql语句,字段和表名都应该和数据库相应,而不是字段,若带有参数如cur.id= currencyID,这个currencyID才是对象的东东.
2,formula="( sql )",这个括号不能少,不然会报错,我试了几次,没括号就报错,添上就没问题
3,操作字段一定要用别名
问题:
1,org.springframework.orm.hibernate3.HibernateSystemException: Null value was assigned to a property of primitive type setter of
没用别名,会出现这个错误,添个别名就好了
2,如果我要用obj.getSchNum()得到想要的值,该对象(obj)必须是hibernate取得的对象,
3,如果要传入参数,如上面那个,currencyID是该对象的属性,它的值也是有hibernate操作当前对象时,把该属性对应的值自动传入进去.
代码
分享到:
相关推荐
2.4. Hibernate独有的注解扩展:除了标准的EJB3注解,Hibernate还提供了一些自定义注解,如`@GeneratedValue`用于设置主键生成策略,`@Formula`用于在属性中使用SQL表达式,`@Cache`用于配置缓存,`@Filter`用于动态...
##### @Formula 用于执行数据库查询表达式。例如,如果需要计算两个字段的总和并将其存储在一个虚拟字段中,可以使用此注解。 ##### @Embedded 和 @Embeddable 这两个注解用于实现值对象的嵌入式映射: - `@...
- 公式:`@Formula`。 - 类型:`@Type`。 - 索引:`@Index`。 - `@Parent`:用于关联关系。 - 生成的属性:`@Generated`。 - **继承**:通过`@Inheritance`来配置不同的继承策略。 - **关联关系**: - 延迟...
在Java实体类中使用`@Formula`注解,通常会结合JPA或Hibernate等ORM框架。下面通过一个具体的例子来说明如何使用`@Formula`: ```java @Entity public class News { private int id; private String title; ...
5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. 多次...
- `@Entity`、`@Id`、`@Column`等是标准的JPA注解,而`@Formula`、`@Cacheable`、`@Filter`等是Hibernate特有的,提供更丰富的功能,如计算属性、缓存策略和动态过滤。 5. **通过XML覆写元数据** 虽然注解是首选...
- **2.4.3.2 公式**:`@Formula` 注解用于计算属性,其值是基于 SQL 表达式动态计算得出的。 - **2.4.3.3 类型**:`@Type` 注解用来定义属性的类型转换策略。 - **2.4.3.4 索引**:`@Index` 注解用于在属性上创建...
5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. 多次...
- **@Formula**:用于根据表中的其他字段计算出一个新字段的值。 - **@Version**:用于实现乐观锁。 - **@Transient**:用于指定某个字段不被持久化。 #### 七、注解配置与实体类映射关系 在Hibernate注解式开发中...
5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. 多次...
- **formula**: 在复杂情况下指定SQL公式来确定子类。 **示例代码**: ```java @hibernate.discriminator(column="type") public abstract class Animal { // ... } ``` ##### 1.4 @hibernate.jcs-cache (0..1) ...
5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. 多次...
5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. 多次映射同一个...
2. `@Formula`: 使用SQL表达式来获取字段值,提供更灵活的数据获取方式。 3. `@Embeddable` 和 `@Embedded`: 支持复合类型,将多个属性封装到一个类中,作为一个整体进行持久化。 4. `@SecondaryTable`: 将实体映射...
5.1.19. 字段和规则元素(column and formula elements) 5.1.20. 引用(import) 5.1.21. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. SQL中引号包围...
- **公式:** `@Formula`注解用于定义基于其他属性计算得出的属性。 - **类型:** `@Type`注解用于指定自定义的数据类型转换器。 - **索引:** `@Index`注解用于定义索引。 - **@Parent:** 用于关联映射。 - *...
字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. 多次映射同一个...