hibernate 联合主键

hibernate的hql修改时 和普通的JDBC有点区别

例如JDBC: update user set name = ? and password = ? where id = ?HQL

必须是:update user set nmae =? ,password = ? where id = ? ;

hibernate分页时:query.setFirstResult((currentPage - 1 ) * pageSize);

query.setMaxResults(pageSize);

其中setMaxResults的意思是 从当前向后取多少条而不是从多少条到多少条

hibernate 映射到数据库时,如果不希望某个字段映射到数据库可使用@Transient标签

hibernate联合主键时】

@Embeddablepublic class PK implements Serializable {

 @Column

private String first;

@Column private String second;

//hashCode equals方法必须重写}

@Entity

public class Person {

 @EmbeddedId private PK pk;

private String name;

 //........}

在保存时须对主键赋值

PK pk =new Pk()pk.setFirst();

pk.setSecond;

Person person =new Person();

perrson.setPk(pk);

如果不对引用主键赋值 就会报错org.hibernate.id.IdentifierGenerationException对于模糊搜索时有些特殊字符需要处理如% _ 等处理时需要将字符转义

例如:conditon = conditon.replaceAll("%", \\\\%);

conditon = conditon.replaceAll("_", \\\\_);

String HQL = "SELECT COUNT(serial) AS num FROM tbl_vlan WHERE userid = ? " + " AND status = ? AND ( Upper(vlan) like ? " + " OR Upper(vlanname) like ? OR Upper(createtime) like ? ESCAPE '\' ) ");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值