EN · DE · RU · FR · ES

#413: KontoDao.java

projectforge-business/src/main/java/org/projectforge/business/fibu/KontoDao.java Tipo: Java · Rol: Objeto de Acceso a Datos · Fuente: projectforge-business/src/main/java/org/projectforge/business/fibu/KontoDao.java 85 líneas · 49 código · 26 comentarios · 10 en blanco
Objeto de Acceso a Datos para entidades Konto. Extiende BaseDao para proporcionar operaciones CRUD, consultas de Hibernate Search y acceso a datos a nivel de lógica de negocio.

Estructura del Código

Paquete: org.projectforge.business.fibu

Clases: KontoDao

Extiende: BaseDao

Métodos (5): afterInsertOrModify, getKonto, newInstance, getKontoCache, onInsertOrModify

Campos (2): USER_RIGHT_ID, kontoCache

Importaciones: 8 paquetes

Código Fuente (resumido)

package org.projectforge.business.fibu;

import kotlin.Pair;
import org.jetbrains.annotations.NotNull;
import org.projectforge.business.user.UserRightId;
import org.projectforge.common.i18n.UserException;
import org.projectforge.framework.access.OperationType;
import org.projectforge.framework.persistence.api.BaseDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class KontoDao extends BaseDao<KontoDO> {
    public static final UserRightId USER_RIGHT_ID = UserRightId.FIBU_ACCOUNTS;

    @Autowired
    private KontoCache kontoCache;

    public KontoDao() {
        super(KontoDO.class);
        userRightId = USER_RIGHT_ID;
    }

    @Override
    public void afterInsertOrModify(@NotNull final KontoDO obj, final OperationType operationType) {
        getKontoCache().refresh();
    }

    public KontoDO getKonto(final Integer kontonummer) {
        if (kontonummer == null) {
            return null;
        }
        return persistenceService.selectNamedSingleResult(
                KontoDO.FIND_BY_NUMMER,
                KontoDO.class,
                new Pair<>("nummer", kontonummer));
    }

    @NotNull
    @Override
    public KontoDO newInstance() {
        return new KontoDO();
    }

    /**
     * @return el kontoCache
     */
    public KontoCache getKontoCache() {
        return kontoCache;
    }

    @Override
    public void onInsertOrModify(final KontoDO obj, final OperationType operationType) {
        if (obj.getNummer() != null && obj.getNummer() > 0) {
            KontoDO existingAccount = getKonto(obj.getNummer());
            //Caso de inserción
            if (existingAccount != null && (obj.getId() == null || !obj.getId().equals(existingAccount.getId()))) {
                throw new UserException("fibu.konto.validate.duplicate");
            }
        }
    }
}

Historial de Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024-> 2025.
5989b32fd BaseDao: mecanismo de onChangeListener refactorizado.
1b50060c3 BaseDao: renombrado: get -> find, save -> insert, getList -> select, load -> select
3aeda5ef5 Cambio grande: todos los save|update|...InTrans renombrados (InTrans eliminado). PfPesistenceContext ya no es necesario como parámetro (se usa ThreadLocal en su lugar). (todas las pruebas de todos los paquetes: OK).