r2534 - trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence
Author: athimel Date: 2012-05-25 16:55:00 +0200 (Fri, 25 May 2012) New Revision: 2534 Url: http://nuiton.org/repositories/revision/topia/2534 Log: TopiaDAOImpl#findByNaturalIds will not be implemented. Prefer using the DAO's generated ffindByNaturalId Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java 2012-05-25 14:15:39 UTC (rev 2533) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java 2012-05-25 14:55:00 UTC (rev 2534) @@ -475,7 +475,9 @@ * @param keys la liste des champs de la cle naturelle avec leur valeur * @return l'entite trouvé * @throws TopiaException if any pb while getting datas + * @deprecated Prefer using the DAO generated findByNaturalId */ + @Deprecated E findByNaturalIds(Map<String, Object> keys) throws TopiaException; /** @@ -486,7 +488,9 @@ * @param k l'objet cle naturelle de la classe * @return l'entité trouvé * @throws TopiaException if any pb while getting datas + * @deprecated Prefer using the DAO generated findByNaturalId */ + @Deprecated E findByNaturalIds(Object... k) throws TopiaException; /** Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java 2012-05-25 14:15:39 UTC (rev 2533) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java 2012-05-25 14:55:00 UTC (rev 2534) @@ -50,8 +50,6 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceException; -import javax.persistence.metamodel.EntityType; -import javax.persistence.metamodel.Metamodel; import java.lang.reflect.InvocationTargetException; import java.security.Permission; import java.util.Collection; @@ -194,9 +192,9 @@ } /** - * Cette methode appelle fireVetoableCreate et fireOnCreated Si vous la - * surchargé, faites attention a appeler le super ou a appeler vous aussi - * ces deux methodes. + * Cette méthode appelle fireVetoableCreate et fireOnCreated. Si vous la + * surchargez, faites attention à appeler le super ou à appeler vous aussi + * ces deux méthodes. */ @Override public E create(Map<String, Object> properties) throws TopiaException { @@ -479,49 +477,12 @@ @Override public E findByNaturalIds(Map<String, Object> keys) throws TopiaException { - try { - // we used hibernate meta information for all persistence type - // it's more easy than create different for all persistence - EntityType<E> meta = getClassMetadata(); - // TODO AThimel 07/05/2012 See if it is possible to do it with EntityType -// if (meta.hasNaturalIdentifier()) { - E result = findByProperties(keys); - return result; -// } - } catch (PersistenceException eee) { - throw new TopiaException(eee); - } -// throw new TopiaException("La classe " + entityClass.getName() -// + " n'a pas de cle primaire naturelle"); - + throw new UnsupportedOperationException("TopiaDAOImpl#findByNaturalIds"); } @Override public E findByNaturalIds(Object... k) throws TopiaException { - // TODO pour une meilleur gestion des problemes a la compilation - // mettre un premier couple (propName, value) en argument ca evitera - // de pouvoir appeler cette methode sans argument - try { - EntityType<E> meta = getClassMetadata(); - // TODO AThimel 07/05/2012 See if it is possible to do it with EntityType -// if (meta.hasNaturalIdentifier()) { -// int[] ikeys = meta.getNaturalIdentifierProperties(); -// String[] pnames = meta.getPropertyNames(); - - Map<String, Object> keys = new HashMap<String, Object>(); -// for (int ikey : ikeys) { -// keys.put(pnames[ikey], k[ikey]); -// } - - E result = findByProperties(keys); - return result; -// } - } catch (PersistenceException eee) { - throw new TopiaException(eee); - } -// throw new TopiaException("La classe " + entityClass.getName() -// + " n'a pas de cle primaire naturelle"); - + throw new UnsupportedOperationException("TopiaDAOImpl#findByNaturalIds"); } @Override @@ -548,25 +509,6 @@ return getContext().getEntityManager(); } - /** - * package locale method because this is hibernate specific method and - * we don't want expose it. - * - * @return the meta-data of the entity - * @throws TopiaException if any pb - */ - EntityType<E> getClassMetadata() throws TopiaException { - Metamodel metamodel = getContext().getEntityManagerFactory() - .getMetamodel(); - EntityType<E> meta = metamodel.entity(getEntityClass()); - // TODO AThimel 07/05/2012 Maybe there is no need to call this ? -// if (meta == null) { -// Class<E> implementationClass = getTopiaEntityEnum().getImplementation(); -// meta = metamodel.entity(implementationClass); -// } - return meta; - } - protected Multimap<Class<? extends TopiaEntity>, TopiaEntity> fillComposite( Multimap<Class<? extends TopiaEntity>, TopiaEntity> tmp2) throws TopiaException {
participants (1)
-
athimel@users.nuiton.org