Bueno ... En este grupo solo tengo a los 7 magníficos de los cuales sólo vienen 5.
Si se dieron cuenta, el trabajo con JPA consiste en establecer la relaciones entre las entidades ( modelar ) ...acuerdense del "profesor Navarro" y de la malla curricular que han estudiado.
Y la acostumbrada foto de rigor ... No se por que motivo siempre salen sonriendo .... hasta ahora no detecto como lo hacen .... ya lo sabré ... ja ja ja
PD: Esta fue la continua #2 del ciclo 2010-II .... por ahí que alguno que está llevando por 2da vez conmigo ya se dió cuenta ... pero NO LO VUELVO A HACER .... así que estudien ...
Saludos
Profe una consulta en JPA como haria un Pivot es decir en mysql es sencillo por ejemplo:
ResponderEliminarEste es un simple
CREATE TABLE supparts(supID char(2),partID char(2));
INSERT INTO supparts VALUES
('s1','p1'),('s1','p2'),('s1','p3'),('s1','p4'),('s1','p5'),('s1','p6'),
('s2','p1'),('s2','p2'),('s3','p2'),('s4','p2'),('s4','p4'),('s4','p5');
SELECT partID,GROUP_CONCAT(supID ORDER BY supID) AS Suppliers
FROM supparts
GROUP BY partID;
+--------+-------------+
| partID | Suppliers |
+--------+-------------+
| p1 | s1,s2 |
| p2 | s1,s2,s3,s4 |
| p3 | s1 |
| p4 | s1,s4 |
| p5 | s1,s4 |
| p6 | s1 |
+--------+-------------+
esta es la pagina donde hay varios ejemplos y varias maneras de hacer ...
http://www.artfulsoftware.com/infotree/queries.php
gracias
I820647
Daniel Delgado Cabrera
GROUP_CONCAT es una facilidad de MySQL : http://dev.mysql.com/doc/refman/5.0/es/group-by-functions.html
ResponderEliminarLo puedes reemplazar usando el siguiente programa (asume que la entidad esta creada ):
public static void main(String[] args) {
EntityManagerFactory entityManagerFactory =
Persistence.createEntityManagerFactory("Demo");
EntityManager em = entityManagerFactory.createEntityManager();
String sql = "SELECT DISTINCT a.partID FROM SUPPA a ORDER BY a.partID";
List l1 = em.createQuery(sql).getResultList();
for ( int i = 0; i < l1.size(); i++ ) {
String a = (String) l1.get(i);
String sql2 = "SELECT a.supID FROM SUPPA a WHERE a.partID = ?1 ORDER BY a.supID";
Query q = em.createQuery(sql2);
q.setParameter(1, a);
List l2 = q.getResultList();
String supps ="";
for ( int j=0; j < l2.size(); j++ ) {
supps = supps + " " + l2.get(j);
}
System.out.println("PartID " + a + " " + supps );
}
em.close();
entityManagerFactory.close();
}