EN · DE · RU · FR · ES

#373 : BookDao.java

projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java Classe Java, projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java 118 lignes · 64 code · 39 commentaires · 15 vides
Objectif : Fichier source : projectforge/business/book/BookDao.java. BookDao.java fait partie de l'application open-source de gestion de projet ProjectForge.

Source (100 premières lignes)

/////////////////////////////////////////////////////////////////////////////
//
// Projet ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Allemagne (www.micromata.com)
//
// ProjectForge est sous double licence.
//
// Cette édition communautaire est un logiciel libre ; vous pouvez la redistribuer et/ou
// la modifier selon les termes de la GNU General Public License telle que publiée
// par la Free Software Foundation ; version 3 de la Licence.
//
// Cette édition communautaire est distribuée dans l'espoir qu'elle sera utile,
// mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de
// QUALITÉ MARCHANDE ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la GNU General
// Public License pour plus de détails.
//
// Vous devriez avoir reçu une copie de la GNU General Public License avec
// ce programme ; sinon, consultez http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.business.book;

import kotlin.Pair;
import org.projectforge.business.user.UserDao;
import org.projectforge.framework.access.OperationType;
import org.projectforge.framework.persistence.api.BaseDao;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Objects;

/**
 * @author Kai Reinhard (k.reinhard@micromata.de)
 */
@Service
public class BookDao extends BaseDao<BookDO> {

    private static final String[] ADDITIONAL_SEARCH_FIELDS = new String[]{"lendOutBy.username", "lendOutBy.firstname",
            "lendOutBy.lastname", "signature_exact"};

    @Autowired
    private UserDao userDao;

    public BookDao() {
        super(BookDO.class);
    }

    @Override
    public String[] getAdditionalSearchFields() {
        return ADDITIONAL_SEARCH_FIELDS;
    }

    /**
     * Est-ce que la signature du livre existe déjà ? Si la signature est nulle, retourne toujours faux.
     *
     * @param book
     * @return
     */
    public boolean doesSignatureAlreadyExist(final BookDO book) {
        Objects.requireNonNull(book);
        return doesSignatureAlreadyExist(book.getSignature(), book.getId());
    }

    public boolean doesSignatureAlreadyExist(final String signature, final Long id) {
        if (signature == null) {
            return false;
        }
        BookDO other = null;
        if (id == null) {
            // Nouveau livre
            other = persistenceService.selectNamedSingleResult(
                    BookDO.FIND_BY_SIGNATURE,
                    BookDO.class,
                    new Pair<>("signature", signature));
        } else {
            // Le livre existe déjà. Vérifier la signature peut-être modifiée :
            other = persistenceService.selectNamedSingleResult(
                    BookDO.FIND_OTHER_BY_SIGNATURE,
                    BookDO.class,
                    new Pair<>("signature", signature),
                    new Pair<>("id", id));

        }
        return other != null;
    }

    public void setLendOutBy(final BookDO book, final Long lendOutById) {
        final PFUserDO user = userDao.findOrLoad(lendOutById);
        book.setLendOutBy(user);
    }

    /**
     * @return Toujours vrai, aucun accès de sélection générique nécessaire pour les objets livre.
     */
    @Override
    public boolean hasUserSelectAccess(final PFUserDO user, final boolean throwException) {

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
a33f8f203 Migration en cours... (tous les tests de tous les packages : OK).
d67bce18b Migration en cours...
1b50060c3 BaseDao : renommé : get -> find, save -> insert, getList -> select, load -> select

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
index 13327cade..8a3f2c1be 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

63081666f

En-têtes des fichiers source : 2024 -> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
index 4f2f3b3cf..13327cade 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

a33f8f203

Migration en cours... (tous les tests de tous les packages : OK).
a33f8f203ba809d731307e4785e8ad761ab4bfc0
diff --git a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
index a335504c9..4f2f3b3cf 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
@@ -40,7 +40,7 @@ import java.util.Objects;
 public class BookDao extends BaseDao<BookDO> {
 
     private static final String[] ADDITIONAL_SEARCH_FIELDS = new String[]{"lendOutBy.username", "lendOutBy.firstname",
-            "lendOutBy.lastname"};
+            "lendOutBy.lastname", "signature_exact"};
 
     @Autowired
     private UserDao userDao;

d67bce18b

Migration en cours...
d67bce18b948b5dce6a302daf4cfbfe89f4b9d99
diff --git a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
index 5f9a2ab21..a335504c9 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
@@ -24,7 +24,6 @@
 package org.projectforge.business.book;
 
 import kotlin.Pair;
-import org.apache.commons.lang3.Validate;
 import org.projectforge.business.user.UserDao;
 import org.projectforge.framework.access.OperationType;
 import org.projectforge.framework.persistence.api.BaseDao;
@@ -32,86 +31,88 @@ import org.projectforge.framework.persistence.user.entities.PFUserDO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Objects;
+
 /**
  * @author Kai Reinhard (k.reinhard@micromata.de)
  */
 @Service
 public class BookDao extends BaseDao<BookDO> {
 
-  private static final String[] ADDITIONAL_SEARCH_FIELDS = new String[]{"lendOutBy.username", "lendOutBy.firstname",
-          "lendOutBy.lastname"};
-
-  @Autowired
-  private UserDao userDao;
+    private static final String[] ADDITIONAL_SEARCH_FIELDS = new String[]{"lendOutBy.username", "lendOutBy.firstname",
+            "lendOutBy.lastname"};
 
-  public BookDao() {
-    super(BookDO.class);
-  }
+    @Autowired
+    private UserDao userDao;
 
-  @Override
-  public String[] getAdditionalSearchFields() {
-    return ADDITIONAL_SEARCH_FIELDS;
-  }
+    public BookDao() {
+        super(BookDO.class);
+    }
 
-  /**
-   * Does the book's signature already exists? If signature is null, then return always false.
-   *
-   * @param book
-   * @return
-   */
-  public boolean doesSignatureAlreadyExist(final BookDO book) {
-    Validate.notNull(book);
-    return doesSignatureAlreadyExist(book.getSignature(), book.getId());
-  }
+    @Override
+    public String[] getAdditionalSearchFields() {
+        return ADDITIONAL_SEARCH_FIELDS;

1b50060c3

BaseDao : renommé : get -> find, save -> insert, getList -> select, load -> select
1b50060c3a4b099ec07fd85d28f514b101da4d29
diff --git a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
index ec7a0d314..5f9a2ab21 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java
@@ -88,7 +88,7 @@ public class BookDao extends BaseDao<BookDO> {
   }
 
   public void setLendOutBy(final BookDO book, final Long lendOutById) {
-    final PFUserDO user = userDao.getOrLoad(lendOutById);
+    final PFUserDO user = userDao.findOrLoad(lendOutById);
     book.setLendOutBy(user);
   }