LocalDateからSQLのDate型に変換したい Java11
Q&A
Closed
解決したいこと
java11,springで日付検索の機能を作成しているのですが、
LocalDateからSQLのDate型への変換方法がわからず困っています。
わかる方がいれば教えていただきたいです。よろしくお願いします。
開発環境
java 11
spring 2.7.0
MySQL
mybatis-spring-boot-starter 2.2.2
発生している問題・エラー
LocalDateからSQLのDate型への変換方法
該当するソースコード
Controller
@PostMapping("/id_search")
public String search(
@Validated @ModelAttribute InventorySearchReq inventorySearchReq,
Model model) {
java.sql.Date sqlDate = (現状わかっていない部分)
List<Inventory> list = inventoryService.findByDate(sqlDate);
model.addAttribute("list", list);
model.addAttribute("在庫一覧", "タスク一覧");
return "inventory/index";
}
Entity
@Data
public class InventorySearchReq implements Serializable{
@NotNull (message = "日付を設定してください。")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@PastOrPresent(message = "日付が未来に設定されています。")
private LocalDate reportDate;
}
Service
@Service
@RequiredArgsConstructor
public class InventoryServiceImpl implements InventoryService {
private final InventoryMapper inventoryMapper;
@Override
public List<Inventory> findByDate(Date sqlDate) {
return inventoryMapper.findByDate(sqlDate);
}
}
Mapper
@Mapper
public interface InventoryMapper {
@Select("SELECT * FROM inventorys INNER JOIN products ON inventorys.products_id = products.id"
+ "WHERE report_date = #{sqlDate}")
List<Inventory> findByDate(Date sqlDate);
}
自分で試したこと
文字列からsqlのデータ型への変換はjava.sql.Date.valueOf.を使用すればいいのはわかったのですが、LocalDateからStringへの方法がうまくいっていない状況です。
0