KontoDao.javaPaket: org.projectforge.business.fibu
Klassen: KontoDao
Erweitert: BaseDao
Methoden (5): afterInsertOrModify, getKonto, newInstance, getKontoCache, onInsertOrModify
Felder (2): USER_RIGHT_ID, kontoCache
Importe: 8 Pakete
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 the 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());
//Einfügefall
if (existingAccount != null && (obj.getId() == null || !obj.getId().equals(existingAccount.getId()))) {
throw new UserException("fibu.konto.validate.duplicate");
}
}
}
}
868d6abb7 2025 -> 2026 63081666f Quelldatei-Header: 2024 -> 2025. 5989b32fd BaseDao: Mechanismus von onChangeLister umgestaltet. 1b50060c3 BaseDao: umbenannt: get -> find, save -> insert, getList -> select, load -> select 3aeda5ef5 Große Änderung: alle save|update|...InTrans umbenannt (InTrans entfernt). PfPesistenceContext als Parameter nicht mehr benötigt (ThreadLocal wird stattdessen verwendet). (alle Tests aller Pakete: OK).