前提
java11,springで日付検索の機能を作成しているのですが、
LocalDateからSQLのDate型への変換方法がわからず困っています。
わかる方がいれば教えていただきたいです。よろしくお願いします。
実現したいこと
LocalDateからSQLのDate型への変換し、SQLが正常に動く状態にしたい。
発生している問題・エラーメッセージ
LocalDateからSQLのDate型への変換方法
該当のソースコード
Controller
1@PostMapping("/id_search") 2 public String search( 3 @Validated @ModelAttribute InventorySearchReq inventorySearchReq, 4 Model model) { 5 6 7 8 java.sql.Date sqlDate = (現状わかっていない部分) 9 10 List<Inventory> list = inventoryService.findByDate(sqlDate); 11 12 model.addAttribute("list", list); 13 model.addAttribute("在庫一覧", "タスク一覧"); 14 15 return "inventory/index"; 16 }
Entity
1@Data 2public class InventorySearchReq implements Serializable{ 3 4 @NotNull (message = "日付を設定してください。") 5 @DateTimeFormat(pattern = "yyyy-MM-dd") 6 @PastOrPresent(message = "日付が未来に設定されています。") 7 private LocalDate reportDate; 8 9}
Service
1@Service 2@RequiredArgsConstructor 3public class InventoryServiceImpl implements InventoryService { 4 5 private final InventoryMapper inventoryMapper; 6 7 @Override 8 public List<Inventory> findByDate(Date sqlDate) { 9 return inventoryMapper.findByDate(sqlDate); 10 } 11 12}
Mapper
1@Mapper 2public interface InventoryMapper { 3 4 @Select("SELECT * FROM inventorys INNER JOIN products ON inventorys.products_id = products.id" 5 + "WHERE report_date = #{sqlDate}") 6 List<Inventory> findByDate(Date sqlDate); 7}
試したこと
文字列からsqlのデータ型への変換はjava.sql.Date.valueOf.を使用すればいいのはわかったのですが、LocalDateからStringへの方法がうまくいっていない状況です。
補足情報(FW/ツールのバージョンなど)
java11, spring boot 2.7.0, MySQL, Mybatis, thymleaf
回答2件
あなたの回答
tips
プレビュー