From f370d03e1062a60911d3e36a9f253040a294ef43 Mon Sep 17 00:00:00 2001 From: "h.hein" <26-h-kyaw-sakuracommunication@it-college.co.jp> Date: Mon, 19 Oct 2026 16:10:12 +0900 Subject: [PATCH] dto,form,repository,entity done --- .../demo/common/BusinessException.java | 6 +- .../java/com/example/demo/common/Const.java | 28 +++- .../com/example/demo/common/LoginUser.java | 28 +++- .../demo/config/LoginCheckInterceptor.java | 34 ++++- .../com/example/demo/config/WebConfig.java | 13 +- .../java/com/example/demo/dto/BorrowView.java | 69 ++++++++- .../example/demo/entity/BookCollection.java | 105 +++++++++++++- .../com/example/demo/entity/BorrowBook.java | 136 +++++++++++++++++- .../com/example/demo/entity/Employee.java | 105 +++++++++++++- .../java/com/example/demo/form/BookForm.java | 27 +++- .../com/example/demo/form/EmployeeForm.java | 30 +++- .../repository/BookCollectionRepository.java | 36 ++++- .../demo/repository/BorrowBookRepository.java | 35 ++++- .../demo/repository/EmployeeRepository.java | 10 +- .../resources/templates/frament/header.html | 10 ++ .../src/main/resources/templates/menu.html | 46 +++--- 16 files changed, 676 insertions(+), 42 deletions(-) create mode 100644 book-rent/src/main/resources/templates/frament/header.html diff --git a/book-rent/src/main/java/com/example/demo/common/BusinessException.java b/book-rent/src/main/java/com/example/demo/common/BusinessException.java index 70b960e..2975125 100644 --- a/book-rent/src/main/java/com/example/demo/common/BusinessException.java +++ b/book-rent/src/main/java/com/example/demo/common/BusinessException.java @@ -1,5 +1,9 @@ package com.example.demo.common; -public class BusinessException { +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + public BusinessException(String message) { + super(message); + } } diff --git a/book-rent/src/main/java/com/example/demo/common/Const.java b/book-rent/src/main/java/com/example/demo/common/Const.java index 429828c..db70313 100644 --- a/book-rent/src/main/java/com/example/demo/common/Const.java +++ b/book-rent/src/main/java/com/example/demo/common/Const.java @@ -1,5 +1,31 @@ package com.example.demo.common; -public class Const { + +/** テーブル定義書のコード値(数値の直書きを避けるため一箇所に集約) */ +public final class Const { + private Const() {} + + public static final String SESSION_LOGIN_USER = "loginUser"; + + /** 管理者フラグ */ + public static final String ADMIN_NO = "0"; + public static final String ADMIN_YES = "1"; + + /** 初期パスワード(機能一覧 EMP-01) */ + public static final String DEFAULT_PASSWORD = "sakura2024"; + + /** 退職フラグ */ + public static final String RETIRE_NO = "0"; + public static final String RETIRE_YES = "1"; + + /** 貸出フラグ */ + public static final String LENDING_OK = "0"; // 貸出可 + public static final String LENDING_NG = "1"; // 貸出不可 + + /** 貸出ステータス */ + public static final String STATUS_RETURNED = "0"; // 返却済 + public static final String STATUS_WAITING = "1"; // 承認待 + public static final String STATUS_LENDING = "2"; // 貸出中 + public static final String STATUS_REJECTED = "9"; // 却下 } diff --git a/book-rent/src/main/java/com/example/demo/common/LoginUser.java b/book-rent/src/main/java/com/example/demo/common/LoginUser.java index 175c874..9d47f8c 100644 --- a/book-rent/src/main/java/com/example/demo/common/LoginUser.java +++ b/book-rent/src/main/java/com/example/demo/common/LoginUser.java @@ -1,5 +1,31 @@ package com.example.demo.common; -public class LoginUser { + +import java.io.Serializable; + +/** セッションに保持するログイン情報(社員ID・社員名・社員名よみ・メールアドレス・管理者フラグ) */ +public class LoginUser implements Serializable { + private static final long serialVersionUID = 1L; + + private final Integer idEmployee; + private final String nmEmployee; + private final String knEmployee; + private final String mailAddress; + private final String flgAdmin; + + public LoginUser(Integer idEmployee, String nmEmployee, String knEmployee, String mailAddress, String flgAdmin) { + this.idEmployee = idEmployee; + this.nmEmployee = nmEmployee; + this.knEmployee = knEmployee; + this.mailAddress = mailAddress; + this.flgAdmin = flgAdmin; + } + + public Integer getIdEmployee() { return idEmployee; } + public String getNmEmployee() { return nmEmployee; } + public String getKnEmployee() { return knEmployee; } + public String getMailAddress() { return mailAddress; } + public String getFlgAdmin() { return flgAdmin; } + public boolean isAdmin() { return Const.ADMIN_YES.equals(flgAdmin); } } diff --git a/book-rent/src/main/java/com/example/demo/config/LoginCheckInterceptor.java b/book-rent/src/main/java/com/example/demo/config/LoginCheckInterceptor.java index e7cb8fe..ac2a925 100644 --- a/book-rent/src/main/java/com/example/demo/config/LoginCheckInterceptor.java +++ b/book-rent/src/main/java/com/example/demo/config/LoginCheckInterceptor.java @@ -1,5 +1,37 @@ package com.example.demo.config; -public class LoginCheckInterceptor { +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; + +import org.springframework.web.servlet.HandlerInterceptor; + +import com.example.demo.common.Const; +import com.example.demo.common.LoginUser; + +/** + * 全業務画面共通のアクセス制御(NFR-02)。 + * ・未ログイン → ログイン画面へ + * ・/admin/** は管理者のみ(画面のボタン非表示だけでなくサーバー側でも確認) + */ +public class LoginCheckInterceptor implements HandlerInterceptor { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + // ブラウザの「戻る」でログアウト後の画面が見えないようにする + response.setHeader("Cache-Control", "no-store"); + + HttpSession session = request.getSession(false); + LoginUser user = session == null ? null : (LoginUser) session.getAttribute(Const.SESSION_LOGIN_USER); + if (user == null) { + response.sendRedirect(request.getContextPath() + "/login"); + return false; + } + String path = request.getRequestURI().substring(request.getContextPath().length()); + if (path.startsWith("/admin") && !user.isAdmin()) { + response.sendRedirect(request.getContextPath() + "/menu"); + return false; + } + return true; + } } diff --git a/book-rent/src/main/java/com/example/demo/config/WebConfig.java b/book-rent/src/main/java/com/example/demo/config/WebConfig.java index 3ee5c7e..3b58718 100644 --- a/book-rent/src/main/java/com/example/demo/config/WebConfig.java +++ b/book-rent/src/main/java/com/example/demo/config/WebConfig.java @@ -1,5 +1,16 @@ package com.example.demo.config; -public class WebConfig { +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new LoginCheckInterceptor()) + .addPathPatterns("/**") + .excludePathPatterns("/login", "/css/**", "/js/**", "/error"); + } } diff --git a/book-rent/src/main/java/com/example/demo/dto/BorrowView.java b/book-rent/src/main/java/com/example/demo/dto/BorrowView.java index c7b58d9..a5d0d25 100644 --- a/book-rent/src/main/java/com/example/demo/dto/BorrowView.java +++ b/book-rent/src/main/java/com/example/demo/dto/BorrowView.java @@ -1,5 +1,72 @@ package com.example.demo.dto; -public class BorrowView { +import java.time.LocalDate; +/** 貸出情報+申請者名+書籍情報(一覧・確認画面表示用) */ +public class BorrowView { + private final Integer idRequest; + private final String nmApplicant; + private final String nmBook; + private final LocalDate dateRequest; + private final LocalDate dateBorrow; + private final LocalDate dateScheduledReturn; + private final String isbn; + private final String publisher; + private final String note; + private final String status; + + public BorrowView(Integer idRequest, String nmApplicant, String nmBook, LocalDate dateRequest, + LocalDate dateBorrow, LocalDate dateScheduledReturn, String isbn, + String publisher, String note, String status) { + this.idRequest = idRequest; + this.nmApplicant = nmApplicant; + this.nmBook = nmBook; + this.dateRequest = dateRequest; + this.dateBorrow = dateBorrow; + this.dateScheduledReturn = dateScheduledReturn; + this.isbn = isbn; + this.publisher = publisher; + this.note = note; + this.status = status; + } + + public Integer getIdRequest() { + return idRequest; + } + + public String getNmApplicant() { + return nmApplicant; + } + + public String getNmBook() { + return nmBook; + } + + public LocalDate getDateRequest() { + return dateRequest; + } + + public LocalDate getDateBorrow() { + return dateBorrow; + } + + public LocalDate getDateScheduledReturn() { + return dateScheduledReturn; + } + + public String getIsbn() { + return isbn; + } + + public String getPublisher() { + return publisher; + } + + public String getNote() { + return note; + } + + public String getStatus() { + return status; + } } diff --git a/book-rent/src/main/java/com/example/demo/entity/BookCollection.java b/book-rent/src/main/java/com/example/demo/entity/BookCollection.java index 830a1f8..1a32cd2 100644 --- a/book-rent/src/main/java/com/example/demo/entity/BookCollection.java +++ b/book-rent/src/main/java/com/example/demo/entity/BookCollection.java @@ -1,5 +1,108 @@ package com.example.demo.entity; -public class BookCollection { +import java.time.LocalDateTime; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +/** 蔵書テーブル */ +@Entity +@Table(name = "book_collection") +public class BookCollection { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id_book") + private Integer idBook; + @Column(name = "isbn") + private String isbn; + @Column(name = "nm_book") + private String nmBook; + @Column(name = "kn_book") + private String knBook; + @Column(name = "publisher") + private String publisher; + @Column(name = "note", columnDefinition = "text") + private String note; + @Column(name = "flg_lending") + private String flgLending; + @Column(name = "id_update") + private Integer idUpdate; + @Column(name = "date_update") + private LocalDateTime dateUpdate; + + public Integer getIdBook() { + return idBook; + } + + public void setIdBook(Integer v) { + this.idBook = v; + } + + public String getIsbn() { + return isbn; + } + + public void setIsbn(String v) { + this.isbn = v; + } + + public String getNmBook() { + return nmBook; + } + + public void setNmBook(String v) { + this.nmBook = v; + } + + public String getKnBook() { + return knBook; + } + + public void setKnBook(String v) { + this.knBook = v; + } + + public String getPublisher() { + return publisher; + } + + public void setPublisher(String v) { + this.publisher = v; + } + + public String getNote() { + return note; + } + + public void setNote(String v) { + this.note = v; + } + + public String getFlgLending() { + return flgLending; + } + + public void setFlgLending(String v) { + this.flgLending = v; + } + + public Integer getIdUpdate() { + return idUpdate; + } + + public void setIdUpdate(Integer v) { + this.idUpdate = v; + } + + public LocalDateTime getDateUpdate() { + return dateUpdate; + } + + public void setDateUpdate(LocalDateTime v) { + this.dateUpdate = v; + } } diff --git a/book-rent/src/main/java/com/example/demo/entity/BorrowBook.java b/book-rent/src/main/java/com/example/demo/entity/BorrowBook.java index 43c73e5..e227ece 100644 --- a/book-rent/src/main/java/com/example/demo/entity/BorrowBook.java +++ b/book-rent/src/main/java/com/example/demo/entity/BorrowBook.java @@ -1,5 +1,139 @@ package com.example.demo.entity; -public class BorrowBook { +import java.time.LocalDate; +import java.time.LocalDateTime; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +/** 貸出テーブル(LOAN-01〜05 で使用) */ +@Entity +@Table(name = "borrow_books") +public class BorrowBook { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id_request") + private Integer idRequest; + @Column(name = "id_applicant") + private Integer idApplicant; + @Column(name = "id_book") + private Integer idBook; + @Column(name = "date_request") + private LocalDate dateRequest; + @Column(name = "status") + private String status; + @Column(name = "id_approval") + private Integer idApproval; + @Column(name = "date_approval") + private LocalDate dateApproval; + @Column(name = "date_borrow") + private LocalDate dateBorrow; + @Column(name = "date_scheduled_return") + private LocalDate dateScheduledReturn; + @Column(name = "date_return") + private LocalDate dateReturn; + @Column(name = "id_update") + private Integer idUpdate; + @Column(name = "date_update") + private LocalDateTime dateUpdate; + + public Integer getIdRequest() { + return idRequest; + } + + public void setIdRequest(Integer v) { + this.idRequest = v; + } + + public Integer getIdApplicant() { + return idApplicant; + } + + public void setIdApplicant(Integer v) { + this.idApplicant = v; + } + + public Integer getIdBook() { + return idBook; + } + + public void setIdBook(Integer v) { + this.idBook = v; + } + + public LocalDate getDateRequest() { + return dateRequest; + } + + public void setDateRequest(LocalDate v) { + this.dateRequest = v; + } + + public String getStatus() { + return status; + } + + public void setStatus(String v) { + this.status = v; + } + + public Integer getIdApproval() { + return idApproval; + } + + public void setIdApproval(Integer v) { + this.idApproval = v; + } + + public LocalDate getDateApproval() { + return dateApproval; + } + + public void setDateApproval(LocalDate v) { + this.dateApproval = v; + } + + public LocalDate getDateBorrow() { + return dateBorrow; + } + + public void setDateBorrow(LocalDate v) { + this.dateBorrow = v; + } + + public LocalDate getDateScheduledReturn() { + return dateScheduledReturn; + } + + public void setDateScheduledReturn(LocalDate v) { + this.dateScheduledReturn = v; + } + + public LocalDate getDateReturn() { + return dateReturn; + } + + public void setDateReturn(LocalDate v) { + this.dateReturn = v; + } + + public Integer getIdUpdate() { + return idUpdate; + } + + public void setIdUpdate(Integer v) { + this.idUpdate = v; + } + + public LocalDateTime getDateUpdate() { + return dateUpdate; + } + + public void setDateUpdate(LocalDateTime v) { + this.dateUpdate = v; + } } diff --git a/book-rent/src/main/java/com/example/demo/entity/Employee.java b/book-rent/src/main/java/com/example/demo/entity/Employee.java index f3c1537..51cf471 100644 --- a/book-rent/src/main/java/com/example/demo/entity/Employee.java +++ b/book-rent/src/main/java/com/example/demo/entity/Employee.java @@ -1,5 +1,108 @@ package com.example.demo.entity; -public class Employee { +import java.time.LocalDateTime; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +/** 社員マスタ */ +@Entity +@Table(name = "employee") +public class Employee { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id_employee") + private Integer idEmployee; + @Column(name = "nm_employee") + private String nmEmployee; + @Column(name = "kn_employee") + private String knEmployee; + @Column(name = "mail_address") + private String mailAddress; + @Column(name = "password") + private String password; + @Column(name = "flg_admin") + private String flgAdmin; + @Column(name = "flg_retirement") + private String flgRetirement; + @Column(name = "id_update") + private Integer idUpdate; + @Column(name = "date_update") + private LocalDateTime dateUpdate; + + public Integer getIdEmployee() { + return idEmployee; + } + + public void setIdEmployee(Integer v) { + this.idEmployee = v; + } + + public String getNmEmployee() { + return nmEmployee; + } + + public void setNmEmployee(String v) { + this.nmEmployee = v; + } + + public String getKnEmployee() { + return knEmployee; + } + + public void setKnEmployee(String v) { + this.knEmployee = v; + } + + public String getMailAddress() { + return mailAddress; + } + + public void setMailAddress(String v) { + this.mailAddress = v; + } + + public String getPassword() { + return password; + } + + public void setPassword(String v) { + this.password = v; + } + + public String getFlgAdmin() { + return flgAdmin; + } + + public void setFlgAdmin(String v) { + this.flgAdmin = v; + } + + public String getFlgRetirement() { + return flgRetirement; + } + + public void setFlgRetirement(String v) { + this.flgRetirement = v; + } + + public Integer getIdUpdate() { + return idUpdate; + } + + public void setIdUpdate(Integer v) { + this.idUpdate = v; + } + + public LocalDateTime getDateUpdate() { + return dateUpdate; + } + + public void setDateUpdate(LocalDateTime v) { + this.dateUpdate = v; + } } diff --git a/book-rent/src/main/java/com/example/demo/form/BookForm.java b/book-rent/src/main/java/com/example/demo/form/BookForm.java index bb2ecf0..d801e04 100644 --- a/book-rent/src/main/java/com/example/demo/form/BookForm.java +++ b/book-rent/src/main/java/com/example/demo/form/BookForm.java @@ -1,5 +1,30 @@ package com.example.demo.form; -public class BookForm { +/** 書籍登録・編集フォーム */ +public class BookForm { + private Integer idBook; + private String isbn = ""; + private String nmBook = ""; + private String knBook = ""; + private String publisher = ""; + private String note = ""; + + public void trim() { + isbn = t(isbn); nmBook = t(nmBook); knBook = t(knBook); publisher = t(publisher); note = t(note); + } + private static String t(String s) { return s == null ? "" : s.trim(); } + + public Integer getIdBook() { return idBook; } + public void setIdBook(Integer v) { this.idBook = v; } + public String getIsbn() { return isbn; } + public void setIsbn(String v) { this.isbn = v; } + public String getNmBook() { return nmBook; } + public void setNmBook(String v) { this.nmBook = v; } + public String getKnBook() { return knBook; } + public void setKnBook(String v) { this.knBook = v; } + public String getPublisher() { return publisher; } + public void setPublisher(String v) { this.publisher = v; } + public String getNote() { return note; } + public void setNote(String v) { this.note = v; } } diff --git a/book-rent/src/main/java/com/example/demo/form/EmployeeForm.java b/book-rent/src/main/java/com/example/demo/form/EmployeeForm.java index 7dd170f..edc1561 100644 --- a/book-rent/src/main/java/com/example/demo/form/EmployeeForm.java +++ b/book-rent/src/main/java/com/example/demo/form/EmployeeForm.java @@ -1,5 +1,33 @@ package com.example.demo.form; - +/** 社員登録・編集フォーム */ public class EmployeeForm { + private Integer idEmployee; + private String nmEmployee = ""; + private String knEmployee = ""; + private String mailAddress = ""; + private String password = ""; + private String flgAdmin = "0"; + private String flgRetirement = "0"; + public void trim() { + nmEmployee = t(nmEmployee); knEmployee = t(knEmployee); mailAddress = t(mailAddress); + flgAdmin = t(flgAdmin); flgRetirement = t(flgRetirement); + if (password == null) password = ""; + } + private static String t(String s) { return s == null ? "" : s.trim(); } + + public Integer getIdEmployee() { return idEmployee; } + public void setIdEmployee(Integer v) { this.idEmployee = v; } + public String getNmEmployee() { return nmEmployee; } + public void setNmEmployee(String v) { this.nmEmployee = v; } + public String getKnEmployee() { return knEmployee; } + public void setKnEmployee(String v) { this.knEmployee = v; } + public String getMailAddress() { return mailAddress; } + public void setMailAddress(String v) { this.mailAddress = v; } + public String getPassword() { return password; } + public void setPassword(String v) { this.password = v; } + public String getFlgAdmin() { return flgAdmin; } + public void setFlgAdmin(String v) { this.flgAdmin = v; } + public String getFlgRetirement() { return flgRetirement; } + public void setFlgRetirement(String v) { this.flgRetirement = v; } } diff --git a/book-rent/src/main/java/com/example/demo/repository/BookCollectionRepository.java b/book-rent/src/main/java/com/example/demo/repository/BookCollectionRepository.java index 4866715..99f7949 100644 --- a/book-rent/src/main/java/com/example/demo/repository/BookCollectionRepository.java +++ b/book-rent/src/main/java/com/example/demo/repository/BookCollectionRepository.java @@ -1,5 +1,39 @@ package com.example.demo.repository; -public class BookCollectionRepository { +import java.time.LocalDateTime; +import java.util.List; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import com.example.demo.entity.BookCollection; + +public interface BookCollectionRepository extends JpaRepository { + + /** + * 貸出可の蔵書を部分一致(AND)で検索する。 + * 空文字の条件は「指定なし」。LIKE の特殊文字は呼び出し側で '!' を使ってエスケープ済み。 + */ + @Query("select b from BookCollection b " + + "where b.flgLending = :lending " + + "and (:nm = '' or b.nmBook like concat('%', :nm, '%') escape '!') " + + "and (:publisher = '' or b.publisher like concat('%', :publisher, '%') escape '!') " + + "and (:note = '' or b.note like concat('%', :note, '%') escape '!') " + + "order by b.idBook") + List search(@Param("lending") String lending, + @Param("nm") String nm, + @Param("publisher") String publisher, + @Param("note") String note); + + /** + * 貸出フラグを from → to に更新する(現在値が from のときだけ更新)。 + * 戻り値が0なら、既に他の操作で状態が変わっている(状態不整合)。 + */ + @Modifying(clearAutomatically = true, flushAutomatically = true) + @Query("update BookCollection b set b.flgLending = :to, b.idUpdate = :uid, b.dateUpdate = :now " + + "where b.idBook = :id and b.flgLending = :from") + int updateLending(@Param("id") Integer id, @Param("from") String from, @Param("to") String to, + @Param("uid") Integer uid, @Param("now") LocalDateTime now); } diff --git a/book-rent/src/main/java/com/example/demo/repository/BorrowBookRepository.java b/book-rent/src/main/java/com/example/demo/repository/BorrowBookRepository.java index 92a79b3..eb7842f 100644 --- a/book-rent/src/main/java/com/example/demo/repository/BorrowBookRepository.java +++ b/book-rent/src/main/java/com/example/demo/repository/BorrowBookRepository.java @@ -1,5 +1,36 @@ package com.example.demo.repository; -public class BorrowBookRepository { +import java.util.List; +import java.util.Optional; -} +import jakarta.persistence.LockModeType; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Lock; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import com.example.demo.dto.BorrowView; +import com.example.demo.entity.BorrowBook; + +public interface BorrowBookRepository extends JpaRepository { + + String VIEW = "select new com.example.demo.dto.BorrowView(" + + "r.idRequest, e.nmEmployee, b.nmBook, r.dateRequest, r.dateBorrow, r.dateScheduledReturn, " + + "b.isbn, b.publisher, b.note, r.status) " + + "from BorrowBook r, Employee e, BookCollection b " + + "where r.idApplicant = e.idEmployee and r.idBook = b.idBook "; + + /** LOAN-02 / LOAN-04:ステータス指定の一覧 */ + @Query(VIEW + "and r.status = :status order by r.idRequest") + List findViewsByStatus(@Param("status") String status); + + /** 確認画面用:申請IDで1件 */ + @Query(VIEW + "and r.idRequest = :id") + List findViewById(@Param("id") Integer id); + + /** 承認・却下・返却:更新前に行ロックを取って同時操作を防ぐ */ + @Lock(LockModeType.PESSIMISTIC_WRITE) + @Query("select r from BorrowBook r where r.idRequest = :id") + Optional findForUpdate(@Param("id") Integer id); +} \ No newline at end of file diff --git a/book-rent/src/main/java/com/example/demo/repository/EmployeeRepository.java b/book-rent/src/main/java/com/example/demo/repository/EmployeeRepository.java index b31a9b1..c0617a7 100644 --- a/book-rent/src/main/java/com/example/demo/repository/EmployeeRepository.java +++ b/book-rent/src/main/java/com/example/demo/repository/EmployeeRepository.java @@ -1,5 +1,13 @@ package com.example.demo.repository; -public class EmployeeRepository { +import java.util.Optional; +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.Employee; + +public interface EmployeeRepository extends JpaRepository { + Optional findByMailAddressAndFlgRetirement(String mailAddress, String flgRetirement); + + Optional findByMailAddress(String mailAddress); } diff --git a/book-rent/src/main/resources/templates/frament/header.html b/book-rent/src/main/resources/templates/frament/header.html new file mode 100644 index 0000000..2571001 --- /dev/null +++ b/book-rent/src/main/resources/templates/frament/header.html @@ -0,0 +1,10 @@ + + + + +Insert title here + + + + + \ No newline at end of file diff --git a/book-rent/src/main/resources/templates/menu.html b/book-rent/src/main/resources/templates/menu.html index e14f482..ff60b1b 100644 --- a/book-rent/src/main/resources/templates/menu.html +++ b/book-rent/src/main/resources/templates/menu.html @@ -2,35 +2,27 @@ - - メニュー - - - + + メニュー + - -

メニュー

- -
- ログインユーザー: - ユーザー名 - -
- -
-
- - - +
+
+

メニュー

+
+ +
+ \ No newline at end of file