Hibernate
来源:互联网 发布:php explode函数 编辑:程序博客网 时间:2024/06/05 05:17
hibernate 注解
实体类常用注解
@Entity 注解在类上@Table(name = "") 注解类上@Id 注解在getter上,标识这个属性是单一主键 主键生成策略只讲序列,其它的自己去了解 @Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="xxx") @SequenceGenerator(name="xxx",sequenceName="xxx_id_seq") @Column(name="xxx_id") public long getXxxid() { return xxxid; }@Column( //注解在getter上 name="columnName"; (1) boolean unique() default false; (2) boolean nullable() default true; (3) boolean insertable() default true; (4) boolean updatable() default true; (5) String columnDefinition() default ""; (6) String table() default ""; (7) int length() default 255; (8) int precision() default 0; // decimal precision (9) int scale() default 0; // decimal scale (10) (1) name 可选,列名(默认值是属性名) (2) unique 可选,是否在该列上设置唯一约束(默认值false) (3) nullable 可选,是否设置该列的值可以为空(默认值false) (4) insertable 可选,该列是否作为生成的insert语句中的一个列(默认值true) (5) updatable 可选,该列是否作为生成的update语句中的一个列(默认值true) (6) columnDefinition 可选: 为这个特定列覆盖SQL DDL片段 (7) table 可选,定义对应的表(默认为主表) (8) length 可选,列长度(默认值255) (8) precision 可选,列十进制精度(decimal precision)(默认值0) (10) scale 可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)@Transient 注解在getter上 ;表示该属性并非一个到数据库表的字段的映射@Temporal标签的作用 (1) 如果在某类中有Date类型的属性,数据库中存储可能是'yyyy-MM-dd hh:MM:ss'要在查询时获得年月日,在该属性上标注@Temporal(TemporalType.DATE) 会得到形如'yyyy-MM-dd' 格式的日期。 (2)如果在某类中有Date类型的属性,数据库中存储可能是'yyyy-MM-dd hh:MM:ss'要获得时分秒,在该属性上标注 @Temporal(TemporalType.TIME) 会得到形如'HH:MM:SS' 格式的日期。 (3)如果在某类中有Date类型的属性,数据库中存储可能是'yyyy-MM-dd hh:MM:ss'要获得'是'yyyy-MM-dd hh:MM:ss',在该属性上标注 @Temporal(TemporalType.TIMESTAMP) 会得到形如'yyyy-MM-dd hh:MM:ss' 格式的日期
实体类常见关系
举例: 主表 AInfo.java 从表 BInfo.java
单项关联
@ManyToOne(cascade={CascadeType.ALL}) @JoinColumn(name = "bid") public BInfo getBInfo() { return bInfo; }
双向关联
//AInfo.javaprivate BInfo bInfo;//.... @ManyToOne(cascade={CascadeType.ALL}) @JoinColumn(name = "bid") public BInfo getBInfo() { return bInfo; }private Set<AInfo> aInfos = new HashSet<AInfo>();//..... @OneToMany(mappedBy = "bInfo",cascade={CascadeType.ALL}) public Set<AInfo> getAInfos() { return aInfos; }
增删改查
1、获得SessionFactory对象2、获得Session对象3、Session对象常用API session.save(t) //保存 session.suaveOrUpdate(t)//保存或更新 session.update(t)//更新 session.delete(t)//删除 session.createQuery(hql)//获得Query对象 session.createCriteria(Entity.class)//获得Criteria对象,Entity 为自己的实体类4、通过Query对象查询示例: query.setParameter(index,value);//设置参数值 query.uniqueResult();//获得唯一结果 query.list();//获得列表
String hql="select new com.magus.generallottery.entity.FullBet(bet,issue) from Bet bet,LotteryIssue issue " + " where bet.issue=issue.issue and bet.lotteryTag=issue.lotterytag" + " and bet.userId=? and bet.userBank=? order by bet.createtime desc"; Query query = this.getSession().createQuery(hql); query.setParameter(0,userId); query.setParameter(1, bank); query.setFirstResult((currentPage - 1) * pageSize).setMaxResults(pageSize); itemList = query.list(); query.uniqueResult()
5、Criteria 对象查询 把查询语句对象化了
0 0
- hibernate
- Hibernate
- Hibernate
- Hibernate
- hibernate
- hibernate
- Hibernate
- Hibernate
- Hibernate
- hibernate
- Hibernate
- Hibernate
- hibernate
- hibernate
- hibernate
- Hibernate
- Hibernate
- hibernate
- ppt转成pdf格式的方法
- java中Date,String,timestamp转换问题
- shell命令技巧——文本去重并保持原有顺序
- Quartz2D方法
- android activity动画实现
- Hibernate
- u-boot在jz2440上移植
- 如何写一个可以设置等级的打印log,类似于 Debug版本 和release版本。
- hadoop开发中遇到的问题
- Mybatis拦截器介绍及分页插件
- 开源前端框架纵横谈
- 暗通道去雾算法实现步骤
- Design Principles: Dominance, Focal Points And Hierarchy
- c#使用ffmpeg显示rtsp视频流