@Override
public <T> void delete(Class<T> entityClass, Object[] entityids) {
if(entityids!=null && entityids.length>0){
StringBuffer jpql = new StringBuffer();
for(int i=0 ;i<entityids.length;i++){
jpql.append("?").append(i+2).append(",");
}
jpql.deleteCharAt(jpql.length()-1);
Query query = em.createQuery("update ProductType o set o.visible=?1 where o.typeid
in("+ jpql.toString()+")")
.setParameter(1, false);
for(int i=0 ;i<entityids.length;i++){
query.setParameter(i+2, entityids[i]);
}
query.executeUpdate();
}
}
这段代码主要是 吧 一个 BOOLEAN 的值 设置为 FALSE
下面这句话的 意思 是什么 ?
query.setParameter(i+2, entityids[i]);
public <T> void delete(Class<T> entityClass, Object[] entityids) {
if(entityids!=null && entityids.length>0){
StringBuffer jpql = new StringBuffer();
for(int i=0 ;i<entityids.length;i++){
jpql.append("?").append(i+2).append(",");
}
jpql.deleteCharAt(jpql.length()-1);
Query query = em.createQuery("update ProductType o set o.visible=?1 where o.typeid
in("+ jpql.toString()+")")
.setParameter(1, false);
for(int i=0 ;i<entityids.length;i++){
query.setParameter(i+2, entityids[i]);
}
query.executeUpdate();
}
}
这段代码主要是 吧 一个 BOOLEAN 的值 设置为 FALSE
下面这句话的 意思 是什么 ?
query.setParameter(i+2, entityids[i]);
query.setParameter(i+2, false);
我觉得 要写 也这样啊
上面 为什么这么写
大家帮帮 忙啊而且 for(int i=0 ;i <entityids.length;i++){
这个我也觉得应该 entityids.length-1 吧。
for(int i=0 ;i <entityids.length;i++){ 是根据数组长度做循环;
程序作用封装成这样的一条hql语句:
update ProductType o set o.visible=?1 where o.typeid
in(entityids[0],entityids[1],...,entityids[entityids.length-1]);