openxava
/ documentación /
Automated Business Logic (ABL) con OpenXava
¡Importante!: ABL no
se soporta desde OpenXava 5.3. Mira las notas
de migración para v5.3.
ABL
es un libreria que permite escribir la lógica de negocio declarativamente
usando anotaciones, esta lógica se ejecutará automáticamente al confirmar
la transacción.
ABL se incluye en OpenXava a partir de v4.5. Para activarlo hay que añadir
la siguiente propiedad en el
persistence-unit del
persistence.xml:
<persistence-unit name="default">
...
<properties>
...
<property name="hibernate.current_session_context_class"
value="com.autobizlogic.abl.session.LogicThreadLocalSessionContext"/>
</properties>
</persistence-unit>
Ahora ya podemos usar lógica declarativa, por ejemplo, si tenemos una
entidad como esta:
package org.openxava.test.model
import javax.persistence.*
import org.openxava.annotations.*
@Entity
class Pedido {
@Id
int numero
@Column(length=40) @Required
String descripcion
@Required
BigDecimal precioUnitario
@Required
int cantidad
BigDecimal importe
}
Podemos definir el cálculo para la propiedad
importe escribiendo
una clase con el sufijo
Logic y anotaciones ABL:
package org.openxava.test.businesslogic
import com.autobizlogic.abl.annotations.*
class PedidoLogic {
@Formula("precioUnitario * cantidad")
public void deriveImporte() { }
}
Sólo con este código cada vez que la base de datos se actualiza ABL
recalculará el valor de
importe automáticamente.
Aprende más sobre como usar ABL en OpenXava