質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

4071閲覧

springBoot 日付型のあいまい検索

RyotaIwasaki

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2019/05/30 05:15

編集2019/05/30 05:22

~やりたいこと~

・今月の日付をメイン画面に表示したい
・直近3か月の日付データを月別で表示したい

DBに登録した日付の範囲をあいまい検索で出力したいと思っています。
この状態で実行しようとすると
beans.factory.BeanCreationException
が発生し、実行できません。
どうすればよいでしょうか。

controller

1if (entityEmpRepository.getOne(empId) != null) { 2 List<EntityWork> workList = entityWorkRepository.findAll(); 3 Calendar calendar = Calendar.getInstance(); 4 calendar.set(Calendar.DAY_OF_MONTH, 01); 5     try { 6   Date fromDate = monthSdf.parse(monthSdf.format(calendar.getTime())); 7   Calendar nextCalendar = Calendar.getInstance(); 8   nextCalendar.add(Calendar.MONTH, 1); 9   nextCalendar.set(Calendar.DAY_OF_MONTH, 01); 10   Date toDate = monthSdf.parse(monthSdf.format(nextCalendar.getTime())); 11   model.addAttribute("monthData",entityWorkRepository.findByDateLike(fromDate,toDate)); 12      return "mainUi"; 13 } catch (ParseException e) { 14 // TODO 自動生成された catch ブロック 15 e.printStackTrace(); 16 } 17 return "loginUi";

Repository

1public interface EntityWorkRepository extends JpaRepository<EntityWork, Date> { 2 @Query("select ew EntityWork ew where ew.date >= :fromdate and ew.date < :todate") 3 List<Date> findByDateLike(@Param("fromdate") Date fromDate,@Param("todate") Date toDate); 4 5} 6

Entity

1@Entity 2@Table(name = "work_data") 3public class EntityWork { 4 @Id 5 @JsonFormat(pattern = "yyyy-MM-dd") 6 @GeneratedValue(strategy = GenerationType.IDENTITY) 7 private Date date; 8 @JsonFormat(pattern = "MM/dd") 9 private String monthDate; 10 private Integer empId; 11 private String empName; 12 private Date startTime; 13 private Date endTime; 14 private String memo; 15 16 17 18 public Date getDate() { 19 20 return date; 21 } 22 23 public void setDate(Date date) { 24 this.date = date; 25 } 26 27 public String getMonthDate() { 28 SimpleDateFormat sdf = new SimpleDateFormat("MM/dd"); 29 String str = sdf.format(date); 30 setMonthDate(str); 31 return monthDate; 32 } 33 34 public void setMonthDate(String monthDate) { 35 this.monthDate = monthDate; 36 } 37 38 public Integer getEmpId() { 39 return empId; 40 } 41 42 public void setEmpId(Integer empId) { 43 this.empId = empId; 44 } 45 46 public String getEmpName() { 47 return empName; 48 } 49 50 public void setEmpName(String empName) { 51 this.empName = empName; 52 } 53 54 public Date getStartTime() { 55 return startTime; 56 } 57 58 public void setStartTime(Date startTime) { 59 this.startTime = startTime; 60 } 61 62 public String getStartTimeOfDay() { 63 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 64 String str = sdf.format(startTime); 65 return str; 66 } 67 68 public Date getEndTime() { 69 return endTime; 70 } 71 72 public void setEndTime(Date endTime) { 73 this.endTime = endTime; 74 } 75 76 public String getEndTimeOfDay() { 77 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 78 String str = sdf.format(endTime); 79 return str; 80 } 81 82 public String getMemo() { 83 return memo; 84 } 85 86 public void setMemo(String memo) { 87 this.memo = memo; 88 } 89 90 public int getOverWork() { 91 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 92 if(startTime == null) { 93 return 0; 94 } 95 String sTime = sdf.format(startTime); 96 if(endTime == null) { 97 return 0; 98 } 99 String eTime = sdf.format(endTime); 100 int s = Integer.parseInt(sTime.substring(0, 2)); 101 int e = Integer.parseInt(eTime.substring(0, 2)); 102 int overWorkHour = e-s-9; 103 if (overWorkHour <= 0) { 104 return 0; 105 } 106 return overWorkHour; 107 } 108 109 110}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

beans.factory.BeanCreationException 例外にはメッセージが付いているはずです。それには何と書いてありますか。それが重要です。

あと、SQLが間違っています(FROMが抜けています)。

投稿2019/05/30 06:19

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RyotaIwasaki

2019/05/30 07:08

ありがとうございます。 メッセージは以下のようなものが出ました。 あとSQLのご指摘ありがとうございます。 Error creating bean with name 'entityWorkRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.example.demo.util.EntityWorkRepository.findByDateLike(java.util.Date,java.util.Date)!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問