hibernate注解
现在EJB3实体bean是纯粹的POJO,实际上表达了和Hibernate持久化实体对象同样的概念。hibernate注解既可以注解到get方法上,也可以注解到属性上。一个实体类要么都注解到类的属性上,要么都注解到get方法上。
@Entity
@Table(name="tbl_Fligh")
public class Flight implements Serializable {
Long id;
****************
@Formula注解
@Formula("(select COUNT(*) from user)")
private int count;
注意:
<property name="belongOrganN" type="string" insert="false" update="false" formula="(select x.OrganShortN from tsy_organ x where x.OrganID= BelongOrganID)"/> 或
<property name="belongOrganN" type="string" insert="false" update="false">
<formula><![CDATA[(select x.OrganShortN from tsy_organ x where x.OrganID= BelongOrganID)]]></formula>
</property>
formula="( ... )",里面的是sql语句,字段和表名都应该和数据库相对应,若带有参数如(select x.OrganShortN from tsy_organ x where x.OrganID= BelongOrganID),OrganID是tsy_organID表中的字段,BelongOrganID名称表示当前<property>元素所在的映射文件或实体model类对应表的字段名。
注解必须是在属性上的,如果有任何一个注解在方法上,那么@Formula将失效
如果配置文件formula="( sql )",这个括号不能少,不然会报错,我试了几次,没括号就报错,添上就没问题;如果是注解sql语句外一样需要被括号包含起来,否则会报错。
@Formula("(select x.OrganShortN from tsy_organ x where x.OrganID= BelongOrganID)")
private String name;