Holas,
No es un tutorial solo quiero dejarles y dejarme un TIP cuando sucede lo siguiente:
- Tiene una tabla ejm Menu y su DTO con id tipo long y demás campos
- Tiene un dao en el estilo DAO
- Tienen un JPA en el estilo MenuImplJPA extends DAOImpl
implements MenuJPA.
- Hacen en sus business methods algo como menuDAO.findByPK(“1″) que devuelve algo mediante JPQL
Bien,
El primer error les dirá que le están pasando un String al JPQL y esperaba un long, entonces cambian por menuDAO.findByPK(1L)
Ok, no da error “TODO BIEN”
FALSO, el objeto les devuelve solo con contenido para el atributo id y el resto de atributos del la clase Menu(DTO) están nulos…… sabes por que?
Fíjense que la declaración de la interfaz dao y su implementación la declararon así:
MenuImplJPA extends DAOImpl<Menu, String> implements MenuJPA
lo que esta mal ya que el id es un Long y le pusieron String pero en compilación y ejecución no les dice NADASSS y solo se ve un objeto vacío. Obviamente la solución es fijarse bien en el DAO creado para menu que debería ser algo como
MenuImplJPA extends DAOImpl<Menu, Long> implements MenuJPA
Y listop, verán que el objeto ya tiene todos los datos
Este error es escondido y lo complejo es que no da un excepción ,,, lo que me llevo a releer el código varias veces tomando en cuenta que no solo tengo un DTO sino como muchos…
Bueno espero les pueda ayudar en algún momento
Saludos

