equal
deleted
inserted
replaced
20 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI |
20 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI |
21 import org.apache.openjpa.persistence.OpenJPAPersistence |
21 import org.apache.openjpa.persistence.OpenJPAPersistence |
22 import org.slf4j.Logger |
22 import org.slf4j.Logger |
23 import org.slf4j.LoggerFactory |
23 import org.slf4j.LoggerFactory |
24 |
24 |
|
25 import ru.indvdum.jpa.entities.AbstractEntity |
25 import ru.indvdum.jpa.props.Props |
26 import ru.indvdum.jpa.props.Props |
26 |
27 |
27 /** |
28 /** |
28 * @author indvdum (gotoindvdum[at]gmail[dot]com) |
29 * @author indvdum (gotoindvdum[at]gmail[dot]com) |
29 * @since 08.11.2012 23:35:04 |
30 * @since 08.11.2012 23:35:04 |
96 public <T> T mergeAndRefresh(T object) { |
97 public <T> T mergeAndRefresh(T object) { |
97 def merged = em.merge(object) |
98 def merged = em.merge(object) |
98 em.refresh(merged) |
99 em.refresh(merged) |
99 |
100 |
100 merged |
101 merged |
|
102 } |
|
103 |
|
104 public <T extends AbstractEntity> T read(T object) { |
|
105 return find(object.class, object.getIdentifierValue()) |
101 } |
106 } |
102 |
107 |
103 public <T> T merge(T object) { |
108 public <T> T merge(T object) { |
104 em.merge(object) |
109 em.merge(object) |
105 } |
110 } |
244 Object value = equalFieldNamesAndValues[i++]; |
249 Object value = equalFieldNamesAndValues[i++]; |
245 fieldValues["${field}"] = value; |
250 fieldValues["${field}"] = value; |
246 } |
251 } |
247 return find(entityClass, fieldValues, null); |
252 return find(entityClass, fieldValues, null); |
248 } |
253 } |
249 |
254 |
250 |
255 |
251 public Object find(String jpql, Object ... paramValues) { |
256 public Object find(String jpql, Object ... paramValues) { |
252 Query query = em.createQuery(jpql); |
257 Query query = em.createQuery(jpql); |
253 for (int i = 0; i < paramValues.length; i++) |
258 for (int i = 0; i < paramValues.length; i++) |
254 query.setParameter(i + 1, paramValues[i]); |
259 query.setParameter(i + 1, paramValues[i]); |
255 return query.getSingleResult(); |
260 return query.getSingleResult(); |