最近对Hibernate 标注比较感兴趣, 研究 @Formula 有些疑惑。做个小例子来加深认识,代码如下:
package com.forumla;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import org.hibernate.annotations.Formula;
/**
* 注解必须是在属性上的,如果有任何一个注解在方法上,那么@Formula将失效
* @author Administrator
*
*/
@Entity
public class UserForumla implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@Formula("(select COUNT(*) from user)")
private int count;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
注意:@Formula("(select COUNT(*) from user)") 此处必须给查询语句加上括号,并且这个属性将不会在数据中做为字段。
测试代码我就不写了,就是查询出UserForumla对象,查看count的值即可。。。
如有什么问题,请留言!