前提・実現したいこと
「春日語」という日本語の略語のような単語のテーブルを MySQL に作成し、Spring Boot + MyBatis で接続して単語の一覧を画面に表示させるだけの
非常に簡易的なアプリケーションを制作しています。
作成したテーブルのフィールドは
+----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | hyojungo | varchar(20) | NO | | NULL | | | kasugago | varchar(20) | NO | | NULL | | | lank | varchar(10) | NO | | NULL | | | four_flg | bit(1) | NO | | NULL | | +----------+-------------+------+-----+---------+----------------+
このように設定されています。
一番下のフィールドである four_flg で真偽値を管理していて、bit(1)と指定してあげることによって
0か1しかinsertもしくはupdateできないという情報を参考にしたため、このような設定になっております。
今回は、このfour_flg の値を表示させる際に問題が発生しております。
発生している問題・エラーメッセージ
four_flg フィールドへの真偽値のINSERTや、SELECTクエリに WHERE four_flg=true/false の条件指定などはMapperファイルからも実行できて、
望む結果が取得できるのですが、 trueの値が格納されているはずのレコードを画面表示させると、全てfalseになってしまっています。
MySQL
1mysql> select id, hyojungo,kasugago, lank, four_flg+0 from mst_kasugago where four_flg=true; 2+----+--------------------+-----------------------+--------+------------+ 3| id | hyojungo | kasugago | lank | four_flg+0 | 4+----+--------------------+-----------------------+--------+------------+ 5| 3 | 大丈夫 | とんぱち | 中級 | 1 | 6| 4 | こんにちは | イピス | 初級 | 1 | 7| 6 | 今どこですか | どち男か男? | 中級 | 1 | 8| 10 | 大丈夫 | とんぱち | 初級 | 1 | 9| 13 | 猫 | にゃんころもち | 初級 | 1 | 10| 15 | フリップ | フィリップ | 初級 | 1 | 11| 18 | 子供 | お子 | 中級 | 1 | 12+----+--------------------+-----------------------+--------+------------+ 137 rows in set (0.00 sec)
Thymeleaf
1id 標準語 春日語 ランク 四択フラグ 23 大丈夫 とんぱち 中級 false 34 こんにちは イピス 初級 false 46 今どこですか どち男か男? 中級 false 510 大丈夫 とんぱち 初級 false 613 猫 にゃんころもち 初級 false 715 フリップ フィリップ 初級 false 818 子供 お子 中級 false 9
該当のソースコード
MapperファイルはMySQLクライアントで実行できたクエリをそのまま使用しております。
Mapper
1 2<mapper namespace="jp.co.sampleApi.mapper.MstKasugagoMapper"> 3 <select id="findAll" resultType="com.example.sampleApi.entity.kasugagoMember"> 4 select 5 id, 6 hyojungo, 7 kasugago, 8 lank, 9 four_flg+0 10 from 11 MST_KASUGAGO 12 where 13 four_flg=true 14 </select> 15
Entityクラスへの値の受け渡しにLombokを使用したいのですが、setter/getterを用意せずに実行してリクエストを送信したところ上手くいかず、
@Dataアノテーションを付与しているのにsetter/getterを用意しているおかしなソースになっています。
おそらく、このLombokの依存関係や記述に問題があるのではないかと考えています。
Entity
1package com.example.sampleApi.entity; 2 3import lombok.Data; 4 5@Data 6public class kasugagoMember { 7 8 private int id; 9 10 private String hyojungo; 11 12 private String kasugago; 13 14 private String lank; 15 16 private boolean four_flg; 17 18 public int getId() { 19 return id; 20 } 21 22 // 省略 23 24 public boolean isFour_flg() { 25 // ここでコンソール表示した段階でfalseになっている 26 System.out.println(four_flg); 27 return four_flg; 28 } 29 30 public void setFour_flg(boolean four_flg) { 31 this.four_flg = four_flg; 32 } 33} 34
pom
1 2 <parent> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-parent</artifactId> 5 <version>2.3.0.RELEASE</version> 6 <relativePath/> <!-- lookup parent from repository --> 7 </parent> 8 <groupId>com.example.sampleApi</groupId> 9 <artifactId>SampleAPI</artifactId> 10 <version>0.0.1-SNAPSHOT</version> 11 <name>SampleAPI</name> 12 <description>Demo project for Spring Boot</description> 13 14 <properties> 15 <java.version>1.8</java.version> 16 </properties> 17 18 <dependencies> 19 <dependency> 20 <groupId>org.springframework.boot</groupId> 21 <artifactId>spring-boot-starter-thymeleaf</artifactId> 22 </dependency> 23 <dependency> 24 <groupId>org.springframework.boot</groupId> 25 <artifactId>spring-boot-starter-web</artifactId> 26 </dependency> 27 <dependency> 28 <groupId>org.mybatis.spring.boot</groupId> 29 <artifactId>mybatis-spring-boot-starter</artifactId> 30 <version>2.1.2</version> 31 </dependency> 32 <dependency> 33 <groupId>mysql</groupId> 34 <artifactId>mysql-connector-java</artifactId> 35 <version>8.0.14</version> 36 </dependency> 37 <dependency> 38 <groupId>org.springframework.boot</groupId> 39 <artifactId>spring-boot-devtools</artifactId> 40 <scope>runtime</scope> 41 <optional>true</optional> 42 </dependency> 43 <dependency> 44 <groupId>org.projectlombok</groupId> 45 <artifactId>lombok</artifactId> 46 <optional>true</optional> 47 </dependency> 48 <dependency> 49 <groupId>org.springframework.boot</groupId> 50 <artifactId>spring-boot-starter-test</artifactId> 51 <scope>test</scope> 52 <exclusions> 53 <exclusion> 54 <groupId>org.junit.vintage</groupId> 55 <artifactId>junit-vintage-engine</artifactId> 56 </exclusion> 57 </exclusions> 58 </dependency> 59 <dependency> 60 <groupId>org.mybatis</groupId> 61 <artifactId>mybatis</artifactId> 62 <version>3.4.2</version> 63 </dependency> 64 </dependencies> 65 66 <build> 67 <plugins> 68 <plugin> 69 <groupId>org.springframework.boot</groupId> 70 <artifactId>spring-boot-maven-plugin</artifactId> 71 </plugin> 72 </plugins> 73 </build> 74 75</project> 76 77
試したこと
SELECTクエリ実行時にbit型の値を整形するために four_flg+0にしてみましたが、何も変化はありませんでした。
補足情報(FW/ツールのバージョンなど)
依存関係ファイルのバージョンなどについては上記のpom.xmlの通りになります。
言葉足らずな部分もあると思いますが、何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー