実現したいこと
- ・JPAでテーブルからデータを取得したい
前提
Spring bootとVue.jsを使ってWEBアプリをつくっているのですが、
以下のcountByPrefectureCdメソッドではテーブルからデータを取得出来るのですが、
findByPrefectureCdメソッドではテーブルからのデータの取得に失敗します。
Java
1@Repository 2public interface BoothRepository extends JpaRepository<Booth, String> { 3 int countByPrefectureCd(String prefectureCd); 4 List<Booth> findByPrefectureCd(String prefectureCd); 5}
JPAのメソッドでデータの取得を試みるとjava.io.StreamCorruptedException: invalid stream header: 32303233(ASCIIコードで2023)というエラーが発生します。
恐縮ですが正常にデータを取得する方法のご教示をお願いいたします。
発生している問題・エラーメッセージ
2023-03-23 12:21:06.210[0;39m [32mDEBUG[0;39m [35m1900[0;39m [2m---[0;39m [2m[nio-8080-exec-8][0;39m [36morg.hibernate.SQL [0;39m [2m:[0;39m select booth0_.booth_id as booth_id1_0_, booth0_.address as address2_0_, booth0_.booth_category_cd as booth_ca3_0_, booth0_.booth_name as booth_na4_0_, booth0_.chome_cd as chome_cd5_0_, booth0_.city_cd as city_cd6_0_, booth0_.del_flg as del_flg7_0_, booth0_.prefecture_cd as prefectu8_0_, booth0_.reg_dt as reg_dt9_0_, booth0_.reg_process as reg_pro10_0_, booth0_.reg_user_id as reg_use11_0_, booth0_.role_id as role_id12_0_, booth0_.town_area_cd as town_ar13_0_, booth0_.upd_dt as upd_dt14_0_, booth0_.upd_process as upd_pro15_0_, booth0_.upd_user_id as upd_use16_0_, booth0_.version as version17_0_ from booth booth0_ where booth0_.prefecture_cd=? [2m2023-03-23 12:21:06.211[0;39m [32mTRACE[0;39m [35m1900[0;39m [2m---[0;39m [2m[nio-8080-exec-8][0;39m [36mo.h.type.descriptor.sql.BasicBinder [0;39m [2m:[0;39m binding parameter [1] as [VARCHAR] - [01] [2m2023-03-23 12:21:06.235[0;39m [32m INFO[0;39m [35m1900[0;39m [2m---[0;39m [2m[nio-8080-exec-8][0;39m [36mcom.koikeya.rotten.app.LogAspect [0;39m [2m:[0;39m End:public abstract java.util.List com.koikeya.rotten.domain.repository.BoothRepository.findByPrefectureCd(java.lang.String) [2m2023-03-23 12:21:06.235[0;39m [32m INFO[0;39m [35m1900[0;39m [2m---[0;39m [2m[nio-8080-exec-8][0;39m [36mcom.koikeya.rotten.app.LogAspect [0;39m [2m:[0;39m End:public java.util.List com.koikeya.rotten.domain.service.impl.FetchListInfoServiceImpl.fetchListInfo(java.lang.String) [2m2023-03-23 12:21:06.236[0;39m [32m INFO[0;39m [35m1900[0;39m [2m---[0;39m [2m[nio-8080-exec-8][0;39m [36mcom.koikeya.rotten.app.LogAspect [0;39m [2m:[0;39m End:public java.lang.String com.koikeya.rotten.app.DisplayListController.displayList(java.lang.String,org.springframework.ui.Model) [2m2023-03-23 12:21:06.244[0;39m [31mERROR[0;39m [35m1900[0;39m [2m---[0;39m [2m[nio-8080-exec-8][0;39m [36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: could not deserialize; nested exception is org.hibernate.type.SerializationException: could not deserialize] with root cause java.io.StreamCorruptedException: invalid stream header: 32303233 at java.base/java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:943) at java.base/java.io.ObjectInputStream.<init>(ObjectInputStream.java:381) at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:309) at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:299)
該当のソースコード
html
1<template> 2 <p v-if="flag" class="ok"> 3 {{ message }} 4 </p> 5 <div class="eight-regional-divisions"> 6 <h2>北海道</h2> 7 <div class="Hokkaido"> 8 <a href="/DisplayListController?prefectureCd=01">北海道</a> 9 {{ hokkaiDo }}件 10 </div>
Java
1@Controller 2@RequestMapping("/DisplayListController") 3public class DisplayListController { 4 /** 5 * 店舗リポジトリ 6 */ 7 @Autowired 8 FetchListInfoService fetchListInfoService; 9 10 /** 11 * 一覧画面を表示する。 12 * @return 一覧画面名 13 */ 14 @RequestMapping 15 public String displayList(@RequestParam(name = "prefectureCd") String prefectureCd, Model model) { 16 List<Booth> boothList = fetchListInfoService.fetchListInfo(prefectureCd); 17 model.addAttribute("boothList", fetchListInfoService.fetchListInfo(prefectureCd)); 18 return UINameEnum.LIST.getUIName(); 19 } 20} 21
Java
1@Service 2public class FetchListInfoServiceImpl implements FetchListInfoService { 3 /** 4 * 店舗 5 */ 6 @Autowired 7 Booth booth; 8 /** 9 * 店舗リポジトリ 10 */ 11 @Autowired 12 BoothRepository boothRepository; 13 14 @Override 15 public List<Booth> fetchListInfo(String prefectureCd) { 16 List<Booth> boothList = boothRepository.findByPrefectureCd(prefectureCd); 17 return boothList; 18 } 19}
Java
1@Repository 2public interface BoothRepository extends JpaRepository<Booth, String> { 3 /** 4 * 都道府県別の店舗数を取得する。 5 * @param prefectureCd 都道府県コード 6 * @return 店舗エンティティクラスリスト 7 */ 8 int countByPrefectureCd(String prefectureCd); 9 /** 10 * 都道府県別の店舗数を取得する。 11 * @param prefectureCd 都道府県コード 12 * @return 店舗エンティティクラスリスト 13 */ 14 List<Booth> findByPrefectureCd(String prefectureCd); 15} 16
Java
1@Data 2@Component 3@Entity 4@Table(name = "booth") 5public class Booth implements Serializable { 6 /** 7 * シリアルバージョンUID 8 */ 9 private static final long serialVersionUID = 123456789L; 10 /** 11 * 都道府県コード 12 */ 13 @NotBlank 14 @Length(max=2) 15 private String prefectureCd;
SQL
1-- 店 2--* RestoreFromTempTable 3create table booth ( 4 prefecture_cd char(2) comment '都道府県コード'
pom.xml
1 </dependency> 2<!-- <dependency> --> 3<!-- <groupId>org.springframework.boot</groupId> --> 4<!-- <artifactId>spring-boot-starter-security</artifactId> --> 5<!-- </dependency> --> 6 <dependency> 7 <groupId>org.springframework.boot</groupId> 8 <artifactId>spring-boot-starter-thymeleaf</artifactId> 9 </dependency> 10 <dependency> 11 <groupId>org.springframework.boot</groupId> 12 <artifactId>spring-boot-starter-web</artifactId> 13 </dependency> 14 15 <dependency> 16 <groupId>org.projectlombok</groupId> 17 <artifactId>lombok</artifactId> 18 <optional>true</optional> 19 </dependency> 20 <dependency> 21 <groupId>org.springframework.boot</groupId> 22 <artifactId>spring-boot-starter-tomcat</artifactId> 23 <scope>provided</scope> 24 </dependency> 25 <dependency> 26 <groupId>org.springframework.boot</groupId> 27 <artifactId>spring-boot-starter-test</artifactId> 28 <scope>test</scope> 29 </dependency> 30 <dependency> 31 <groupId>org.springframework.security</groupId> 32 <artifactId>spring-security-test</artifactId> 33 <scope>test</scope> 34 </dependency> 35 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa --> 36 <dependency> 37 <groupId>org.springframework.boot</groupId> 38 <artifactId>spring-boot-starter-data-jpa</artifactId> 39 </dependency> 40 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 41 <dependency> 42 <groupId>mysql</groupId> 43 <artifactId>mysql-connector-java</artifactId> 44 </dependency> 45 <!-- https://mvnrepository.com/artifact/org.webjars.npm/vue --> 46 <dependency> 47 <groupId>org.webjars.npm</groupId> 48 <artifactId>vue</artifactId> 49 <version>3.2.33</version> 50 </dependency> 51 <!-- https://mvnrepository.com/artifact/joda-time/joda-time --> 52 <dependency> 53 <groupId>joda-time</groupId> 54 <artifactId>joda-time</artifactId> 55 <version>2.10.14</version> 56 </dependency> 57 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> 58 <dependency> 59 <groupId>org.hibernate</groupId> 60 <artifactId>hibernate-validator</artifactId> 61 <version>6.0.17.Final</version> 62 </dependency> 63 <!-- Spring AOP --> 64 <dependency> 65 <groupId>org.springframework</groupId> 66 <artifactId>spring-aop</artifactId> 67 </dependency> 68 <!-- AspectJ --> 69 <dependency> 70 <groupId>org.aspectj</groupId> 71 <artifactId>aspectjweaver</artifactId> 72 </dependency> 73 <!-- https://mvnrepository.com/artifact/org.webjars/bootstrap --> 74 <dependency> 75 <groupId>org.webjars</groupId> 76 <artifactId>bootstrap</artifactId> 77 <version>4.5.2</version> 78 </dependency> 79 80 </dependencies>
補足情報(FW/ツールのバージョンなど)
・Windows 11 Pro
・MySQL 8.0.29
・Eclipse 2021-09 (4.21.0)
・Java 16

あなたの回答
tips
プレビュー