EN · DE · RU · FR · ES

#373: BookDao.java

projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java Java-Klasse, projectforge-business/src/main/java/org/projectforge/business/book/BookDao.java 118 Zeilen · 64 Code · 39 Kommentare · 15 Leer
Zweck: Quelldatei: projectforge/business/book/BookDao.java. BookDao.java ist Teil der Open-Source-Projektmanagement-Anwendung ProjectForge.

Quellcode (erste 100 Zeilen)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Deutschland (www.micromata.com)
//
// ProjectForge ist dual-lizenziert.
//
// Diese Community Edition ist freie Software; Sie können es weiterverteilen und/oder
// modifizieren unter den Bedingungen der GNU General Public License, wie veröffentlicht
// von der Free Software Foundation; Version 3 der Lizenz.
//
// Diese Community Edition wird in der Hoffnung verteilt, dass sie nützlich sein wird,
// aber OHNE JEGLICHE GEWÄHRLEISTUNG; ohne sogar die stillschweigende Garantie der
// MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General
// Public License für weitere Details.
//
// Sie sollten eine Kopie der GNU General Public License zusammen mit
// diesem Programm erhalten haben; falls nicht, siehe 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;
    }

    /**
     * Existiert die Signatur des Buches bereits? Wenn die Signatur null ist, wird immer false zurückgegeben.
     *
     * @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) {
            // Neues Buch
            other = persistenceService.selectNamedSingleResult(
                    BookDO.FIND_BY_SIGNATURE,
                    BookDO.class,
                    new Pair<>("signature", signature));
        } else {
            // Buch existiert bereits. Überprüfe möglicherweise geänderte Signatur:
            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 Immer true, kein generischer Lese-Zugriff für Buchobjekte erforderlich.
     */
    @Override
    public boolean hasUserSelectAccess(final PFUserDO user, final boolean throwException) {

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quelldatei-Header: 2024 -> 2025.
a33f8f203 Migration in Arbeit... (alle Tests aller Pakete: OK).
d67bce18b Migration in Arbeit...
1b50060c3 BaseDao: umbenannt: 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

Quelldatei-Header: 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 in Arbeit... (alle Tests aller Pakete: 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 in Arbeit...
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: umbenannt: 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);
   }