private List<?> getResults(Persistable<?> value, String propertyName) {
String entityName = getEntityName(value);
if (!value.isNew()) { // TODO: wrong semantic
String pkAttributeName = getPkAttributeName(value.getClass());
String query = format("from %s where %s = ? and %s != ?", entityName, propertyName, pkAttributeName);
return new JpaTemplate(entityManager).find(query,
new BeanWrapperImpl(value).getPropertyValue(propertyName), value.getId());
} else {
String query = format("from %s where %s = ?", entityName, propertyName);
return new JpaTemplate(entityManager)
.find(query, new BeanWrapperImpl(value).getPropertyValue(propertyName));
}
}