I have an entity:
@Entity
@Table
public class ClassA{
public static final String COL_VERSION = "VersionABC";
public static final String COL_DATA = "DataABC";
@Column(name = COL_VERSION)
private String version;
@Column(name = COL_DATA)
private String data;
}
And in my DAO:
EntityManager mgr = getEntityManager();
CriteriaBuilder builder = mgr.getCriteriaBuilder();
CriteriaUpdate<ClassA> criteriaUpdate = builder.createCriteriaUpdate(ClassA.class);
Root<ClassA> root = criteriaUpdate.from(ClassA.class);
criteriaUpdate.set(root.get("data"), newData);
if (//condition){
criteriaUpdate.set(root.get("version"), newVersion);
}
mgr.createQuery(criteriaUpdate).executeUpdate();
This code worked, but how to use ClassA.COL_VERSION and ClassA.COL_DATA instead of using hard code "data" and "version" ?
try like this it should be _. instead of ._
EntityManager mgr = getEntityManager();
CriteriaBuilder builder = mgr.getCriteriaBuilder();
CriteriaUpdate<ClassA> criteriaUpdate = builder.createCriteriaUpdate(ClassA.class);
Root<ClassA> root = criteriaUpdate.from(ClassA.class);
criteriaUpdate.set(root.get(ClassA_.data), newData);
if (//condition){
criteriaUpdate.set(root.get(ClassA_.version), newVersion);
}
mgr.createQuery(criteriaUpdate).executeUpdate();
refer http://www.programcreek.com/java-api-examples/index.php?api=javax.persistence.criteria.CriteriaUpdate
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With