{"id":3092,"date":"2025-06-23T12:18:51","date_gmt":"2025-06-23T03:18:51","guid":{"rendered":"https:\/\/technologyagency.net\/wordpress\/?p=3092"},"modified":"2025-06-26T08:41:03","modified_gmt":"2025-06-25T23:41:03","slug":"spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/","title":{"rendered":"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6"},"content":{"rendered":"\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><textarea class=\"code-block-pro-copy-button-textarea\" aria-hidden=\"true\" readonly>\/**\n * Simple static factory method to add some syntactic sugar around a {@link Specification}.\n *\n * @apiNote with 4.0, this method will no longer accept {@literal null} specifications.\n * @param &lt;T> the type of the {@link Root} the resulting {@literal Specification} operates on.\n * @param spec can be {@literal null}.\n * @return guaranteed to be not {@literal null}.\n * @since 2.0\n * @deprecated since 3.5, to be removed with 4.0 as we no longer want to support {@literal null} specifications.\n *\/\n@Deprecated(since = &#8220;3.5.0&#8221;, forRemoval = true)\nstatic &lt;T> Specification&lt;T> where(@Nullable Specification&lt;T> spec) {\n    return spec == null ? (root, query, builder) -> null : spec;\n}<\/textarea><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">\/**<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * Simple static factory method to add some syntactic sugar around a {@link Specification}.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * @apiNote with 4.0, this method will no longer accept {@literal null} specifications.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * <\/span><span style=\"color: #8FBCBB\">@param<\/span><span style=\"color: #616E88\"> <\/span><span style=\"color: #D8DEE9\">&lt;T&gt;<\/span><span style=\"color: #616E88\"> the type of the {@link Root} the resulting {@literal Specification} operates on.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * <\/span><span style=\"color: #8FBCBB\">@param<\/span><span style=\"color: #616E88\"> <\/span><span style=\"color: #D8DEE9\">spec<\/span><span style=\"color: #616E88\"> can be {@literal null}.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * <\/span><span style=\"color: #8FBCBB\">@return<\/span><span style=\"color: #616E88\"> guaranteed to be not {@literal null}.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * <\/span><span style=\"color: #8FBCBB\">@since<\/span><span style=\"color: #616E88\"> 2.0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * <\/span><span style=\"color: #8FBCBB\">@deprecated<\/span><span style=\"color: #616E88\"> since 3.5, to be removed with 4.0 as we no longer want to support {@literal null} specifications.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">@<\/span><span style=\"color: #D08770\">Deprecated<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">since<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">3.5.0<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">forRemoval<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">T<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Specification<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">T<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(@<\/span><span style=\"color: #D08770\">Nullable<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Specification<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">T<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> spec<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> spec <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">null<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">root<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> query<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> builder<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">-&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">null<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">:<\/span><span style=\"color: #D8DEE9FF\"> spec<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u3051\u308c\u3069\u3082\u3001\u307e\u3060\u4ee3\u66ff\u624b\u6bb5\u306f\u306a\u3044\u3088\u3046\u3060\u3002Null\u3092\u8a31\u5bb9\u3057\u306a\u304f\u306a\u308b\u3053\u3068\u3092\u8b66\u544a\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3089\u3057\u3044\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The where method merely caters for the broken nullability allowance and is replaced by where(PredicateSpecification) in 4.0. <\/p>\n<\/blockquote>\n\n\n\n<p>\u307e\u3060\u78ba\u5b9a\u3067\u306f\u306a\u3044\u304b\u3082\u3057\u308c\u306a\u3044\u304c\u3001main\u3067\u306f\u4e0b\u8a18\u306e\u69d8\u306b\u4fee\u6b63\u3055\u308c\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><textarea class=\"code-block-pro-copy-button-textarea\" aria-hidden=\"true\" readonly>\/**\n * Simple static factory method to add some syntactic sugar translating {@link PredicateSpecification} to\n * {@link Specification}.\n *\n * @param &lt;T> the type of the {@link Root} the resulting {@literal Specification} operates on.\n * @param spec the {@link PredicateSpecification} to wrap.\n * @return guaranteed to be not {@literal null}.\n *\/\nstatic &lt;T> Specification&lt;T> where(PredicateSpecification&lt;T> spec) {\n\n    Assert.notNull(spec, &#8220;PredicateSpecification must not be null&#8221;);\n\n    return (root, update, criteriaBuilder) -> spec.toPredicate(root, criteriaBuilder);\n}<\/textarea><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">\/**<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * Simple static factory method to add some syntactic sugar translating {@link PredicateSpecification} to<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * {@link Specification}.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * <\/span><span style=\"color: #8FBCBB\">@param<\/span><span style=\"color: #616E88\"> <\/span><span style=\"color: #D8DEE9\">&lt;T&gt;<\/span><span style=\"color: #616E88\"> the type of the {@link Root} the resulting {@literal Specification} operates on.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * <\/span><span style=\"color: #8FBCBB\">@param<\/span><span style=\"color: #616E88\"> <\/span><span style=\"color: #D8DEE9\">spec<\/span><span style=\"color: #616E88\"> the {@link PredicateSpecification} to wrap.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> * <\/span><span style=\"color: #8FBCBB\">@return<\/span><span style=\"color: #616E88\"> guaranteed to be not {@literal null}.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">T<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Specification<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">T<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">PredicateSpecification<\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\">T<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> spec<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">Assert<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">notNull<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">spec<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">PredicateSpecification must not be null<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">root<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> update<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> criteriaBuilder<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">-&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">spec<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">toPredicate<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">root<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> criteriaBuilder<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u4e0a\u306b\u300cNull\u300d\u304c\u767b\u9332\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3068\u3001Java\u5909\u6570\u304c\u300cNull\u300d\u3067\u3042\u308b\u3053\u3068\u306f\u610f\u5473\u5408\u3044\u304c\u9055\u3046\u304b\u3089\u3001\u305d\u306e\u307e\u307e\u300cNull\u300d\u3092\u6e21\u3059\u3053\u3068\u3092NG\u3068\u3057\u305f\u611f\u3058\u3060\u308d\u3046\u304b\u3002<\/p>\n\n\n\n<p>@Deprecated\u3092\u4ed8\u3051\u308b\u306e\u306f\u307e\u3060\u65e9\u304b\u3063\u305f\u306e\u3067\u306f\u306a\u3044\u3060\u308d\u3046\u304b\u3002\uff08\u540c\u3058\u3088\u3046\u306bNull\u3092\u8a31\u5bb9\u3057\u306a\u304f\u306a\u308b\u4ed6\u306e\u30e1\u30bd\u30c3\u30c9\u306b\u306f\u3064\u3044\u3066\u3044\u306a\u3044\u3057\uff09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u3051\u308c\u3069\u3082\u3001\u307e\u3060\u4ee3\u66ff\u624b\u6bb5\u306f\u306a\u3044\u3088\u3046\u3060\u3002Null\u3092\u8a31\u5bb9\u3057\u306a\u304f\u306a\u308b\u3053\u3068\u3092\u8b66\u544a\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3089\u3057\u3044\u3002 The where method merely caters for the broken nullabilit &hellip; <a href=\"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[69],"class_list":["post-3092","post","type-post","status-publish","format-standard","hentry","category-java","tag-spring-data"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6 - I want to lead an easy life.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5\u3067specification-where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6 - I want to lead an easy life.\" \/>\n<meta property=\"og:description\" content=\"\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u3051\u308c\u3069\u3082\u3001\u307e\u3060\u4ee3\u66ff\u624b\u6bb5\u306f\u306a\u3044\u3088\u3046\u3060\u3002Null\u3092\u8a31\u5bb9\u3057\u306a\u304f\u306a\u308b\u3053\u3068\u3092\u8b66\u544a\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3089\u3057\u3044\u3002 The where method merely caters for the broken nullabilit &hellip; &quot;Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6&quot; \u306e\u7d9a\u304d\u3092\u8aad\u3080\" \/>\n<meta property=\"og:url\" content=\"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5\u3067specification-where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6\/\" \/>\n<meta property=\"og:site_name\" content=\"I want to lead an easy life.\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-23T03:18:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-25T23:41:03+00:00\" \/>\n<meta name=\"author\" content=\"hide6644\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"hide6644\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/\"},\"author\":{\"name\":\"hide6644\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\"},\"headline\":\"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6\",\"datePublished\":\"2025-06-23T03:18:51+00:00\",\"dateModified\":\"2025-06-25T23:41:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/\"},\"wordCount\":197,\"commentCount\":0,\"keywords\":[\"Spring Data\"],\"articleSection\":[\"Java\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/\",\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/\",\"name\":\"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6 - I want to lead an easy life.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#website\"},\"datePublished\":\"2025-06-23T03:18:51+00:00\",\"dateModified\":\"2025-06-25T23:41:03+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2025\\\/06\\\/23\\\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/\",\"name\":\"I want to lead an easy life.\",\"description\":\"Technical Notes\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\",\"name\":\"hide6644\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"caption\":\"hide6644\"},\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/author\\\/hide6644\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6 - I want to lead an easy life.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5\u3067specification-where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6\/","og_locale":"ja_JP","og_type":"article","og_title":"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6 - I want to lead an easy life.","og_description":"\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u3051\u308c\u3069\u3082\u3001\u307e\u3060\u4ee3\u66ff\u624b\u6bb5\u306f\u306a\u3044\u3088\u3046\u3060\u3002Null\u3092\u8a31\u5bb9\u3057\u306a\u304f\u306a\u308b\u3053\u3068\u3092\u8b66\u544a\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3089\u3057\u3044\u3002 The where method merely caters for the broken nullabilit &hellip; \"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6\" \u306e\u7d9a\u304d\u3092\u8aad\u3080","og_url":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5\u3067specification-where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6\/","og_site_name":"I want to lead an easy life.","article_published_time":"2025-06-23T03:18:51+00:00","article_modified_time":"2025-06-25T23:41:03+00:00","author":"hide6644","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"hide6644","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"7\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/#article","isPartOf":{"@id":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/"},"author":{"name":"hide6644","@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63"},"headline":"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6","datePublished":"2025-06-23T03:18:51+00:00","dateModified":"2025-06-25T23:41:03+00:00","mainEntityOfPage":{"@id":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/"},"wordCount":197,"commentCount":0,"keywords":["Spring Data"],"articleSection":["Java"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/","url":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/","name":"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6 - I want to lead an easy life.","isPartOf":{"@id":"https:\/\/technologyagency.net\/wordpress\/#website"},"datePublished":"2025-06-23T03:18:51+00:00","dateModified":"2025-06-25T23:41:03+00:00","author":{"@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63"},"breadcrumb":{"@id":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/technologyagency.net\/wordpress\/2025\/06\/23\/spring-data-jpa-3-5%e3%81%a7specification-where%e3%81%8c%e9%9d%9e%e6%8e%a8%e5%a5%a8%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9f%e4%bb%b6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/technologyagency.net\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Spring Data JPA 3.5\u3067Specification.where\u304c\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u4ef6"}]},{"@type":"WebSite","@id":"https:\/\/technologyagency.net\/wordpress\/#website","url":"https:\/\/technologyagency.net\/wordpress\/","name":"I want to lead an easy life.","description":"Technical Notes","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/technologyagency.net\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63","name":"hide6644","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","caption":"hide6644"},"url":"https:\/\/technologyagency.net\/wordpress\/author\/hide6644\/"}]}},"_links":{"self":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/3092","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/comments?post=3092"}],"version-history":[{"count":3,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/3092\/revisions"}],"predecessor-version":[{"id":3096,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/3092\/revisions\/3096"}],"wp:attachment":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/media?parent=3092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/categories?post=3092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/tags?post=3092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}