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

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

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

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Spring Boot

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

Q&A

1回答

1820閲覧

複合主キーを使用したテーブルで、一覧が正しく表示されない不具合が発生しました。

sample_data

総合スコア0

MySQL

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Spring Boot

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

1グッド

0クリップ

投稿2020/11/23 13:46

前提・実現したいこと

Java(Spring)とMysqlを用いてデータを表示しようとしています。
複合主キーを使用したテーブルで、一覧が正しく表示されない不具合が発生しました。
どのように改善すれば正しいデータが表示されますでしょうか。

こちらのCREATE文を実行し、

CREATE TABLE Day_diary ( `id` int(10) AUTO_INCREMENT, `day_id` int(2), `data` char(40),        PRIMARY KEY (`id`, `day_id`));

下記のデータを挿入しています。

idday_iddata
17外食に行った
115友達と遊んだ

発生している問題

2件登録している情報のうち1件目が2回表示され、 もう一つのデータが表示されない。

該当のソースコード

Day_diaryController.java

package com.example.demo.Controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import com.example.demo.Repository.Day_diaryRepository; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @Controller public class Day_diaryController { private final Day_diaryRepository repository; @GetMapping("/day") public String showList(Model model) { model.addAttribute("data",repository.findAll()); return "day"; } }

Day_diary.java

package com.example.demo.model; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @Getter @Setter @Entity @AllArgsConstructor @NoArgsConstructor @Table(name = "day_diary") public class Day_diary implements Serializable{ /** * */ private static final long serialVersionUID = -2353850539404519008L; //a ID @Id @Column(name = "id") private int id; //a 日ID @Column(name = "day_id") private int day_id; //a 内容 @Column(name = "data") private String data; }

Day_diaryRepository.java

package com.example.demo.Repository; import org.springframework.data.jpa.repository.JpaRepository; import com.example.demo.model.Day_diary; public interface Day_diaryRepository extends JpaRepository<Day_diary,Integer> { }

day.html

<!DOCTYPE html> <html lang="ja" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"> <head> <meta charset="utf-8"> <title>日記管理</title> <link th:href="@{/css/sb-admin-2.css}" rel="stylesheet" /> </head> <body> <!-- DataTables --> <div class="card shadow my-4"> <div class="card-header py-3"> <h6 class="m-0 font-weight-bold text-primary">日記一覧(日別)</h6> </div> <div class="card-body"> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th>日</th> <th>内容</th> </tr> </thead> <tbody> <tr th:each="data: ${data}" th:object="${data}"> <td th:text="*{day_id}"></td> <td th:text="*{data}"></td> </tr> </tbody> </table> </div> </div> </div> </body> </html>

試したこと

一覧表示を行うとこのような内容が表示されてしまいます。

idday_iddata
17外食に行った
17外食に行った
zoizoi22👍を押しています

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

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

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

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

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

guest

回答1

0

不思議ですね。dataという名前を3通りに使ってしまっているのが気になります。名前を変えてみたらどうでしょう?

例えば…

html

1<tr th:each="row: ${rows}" th:object="${row}"> 2 <td th:text="*{day_id}"></td> 3 <td th:text="*{data}"></td> 4</tr>

とか。

コントローラの方も変えて…。

java

1model.addAttribute("rows",repository.findAll());

投稿2020/11/23 14:32

gpsoft

総合スコア1323

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問