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 '\' ) ");