martes, 24 de septiembre de 2013

EXPRESION REGULAR PARA VALIDAR UN FORMATO STRING



VALIDAR EL FORMATO DE HORA “HH:MM”
                                            Expresión regular=“^[0-2]*[0-3]:[0-5][0-9]$”

//FUNCION PARA AGREGAR UNA EXPRESION REGULAR//
public boolean validaFormato(String s)
{
  Pattern p = Pattern.compile("^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])?$");
  Matcher m = p.matcher(s);
  if (m.find())
  { return false; }
  else
  { return true; }
}

Hay que verificar que la importación que hagamos del Pattern sea de "java.util.regex.Pattern
//PAGINA PARA PRUEBAS DE EXPRESIONES REGULARES//

ERROR EN EL ENTITYMANAGER

Este error puede quitar mucho tiempo al encontrar cual es la causa del problema pero realmente es muy sencillo.
La firma que colocamos en las transacciones debe ser obligatoria tanto en el “LOCAL” como en el “IMPL”.
Este es el caso de este error si en la transacción “Impl” ponemos la etiqueta de requerido y en el “Local” no la podemos nos surge el error ya que en “Manejador de entidades” no puede reconocer a la transacción como tal.

NOTAS:


  • TransactionAttribute anotación especifica si el recipiente es invocar un método de negocio dentro de un contexto de transacción. El TransactionAttribute anotación se puede utilizar para beans de sesión y beans controlados por mensajes.


  • Especificación del TransactionAttribute anotación en la clase bean significa que se aplica a todos los métodos de negocio aplicable de la clase. Especificación de la anotación en un método que se aplica sólo a ese método. Si la anotación se aplica tanto a la clase y el nivel de método, el valor del método anula si los dos están de acuerdo.



viernes, 13 de septiembre de 2013

detached entity passed to persist


MENSAJE DE ERROR

javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist

Lo Bueno de ser programadores es que cada día se aprende algo nuevo, y en ocasiones los errores que se nos presentan ya nos han sucedido pero tendemos a olvidarnos, por esa razón es excelente idea colocar dichos errores en el blog.

Este error de JPA ya me había sucedido, pero en si, me demore algunos minutos de analizar el  Por que?
entonces a continuación les explico:

Debemos saber que Hibernate distingue entre  los objetos pertenecientes a una transacción y los que no( transiet y detached).

Cuando tratamos de persistir un objeto transaccional que hemos indicado que si tiene un ID, hibernate a través del archivo orm.xml que se encuentra en el directorio META-INF donde posiblemente tenemos indicado una table-generator, el se encargará de colocar el valor del ID. Por tal razón no es necesario que le asignemos una secuencia nosotros al momento de mandar a persistir. Si hacemos eso, es ahí donde ocurre el famoso   detached entity passed to persist.