How to use metamodel.MapAttribute
? I would like to get the values from Map, but I do not know how? The idea is to know all the meter on a calibration bench.
public class Calibration_ {
public static volatile javax.persistence.metamodel.MapAttribute<Calibration,Integer, Meter> positionsMeters;
}
I have this kind of Map Attribute, to know positions in which meter is on a calibration bench
@Entity
public class Calibration extends AbstractEntity implements Serializable {
private Map<Integer, Meter> positionsMeters;
….
}
I am trying to get the values using this way, but it’s not working:
final QueryData<Calibration> queryData = new QueryData<>(Calibration.class);
final EntityManagerFactory em = Main.context.getBean(EntityManagerFactory.class);
final CriteriaBuilder builder = em.getCriteriaBuilder();
final Root<Meter> meter= queryData.criteria.from(Meter.class);
final Root<Company> company= queryData.criteria.from(Company.class);
Predicate filter = null;
filter = builder.and(
builder.like(queryData.builder.lower(company.get(Company_.name)),"%" + attribute.toLowerCase() + "%"),
builder.equal(meter.get(Meter_.owner), company),
builder.isMember(meter,builder.values((Map<Integer,Meter>)queryData.root.get(Calibration_.positionsMeters)))
);