2017-06-23 28 views
0

私はバネデータjpaを使用しており、動的クエリを生成するために私はバネデータJPA仕様を使用しています。 Date型の横に正しく表示されます。私は次の例外を受け取ります:バネデータjpa日付型パラメータの動的クエリが機能しません

Parameter value [2017-06-01] did not match expected type [java.time.LocalDate (n/a)]; nested exception is java.lang.IllegalArgumentException: Parameter value [2017-06-01] did not match expected type [java.time.LocalDate (n/a)]] 

しかし、私が渡すパラメータ値はjava.util.Date型です。理由は何でしょうか?ここで

private String name; 

@Column(name = "user_id") 
private Long userId; 

@Column(name = "version_id") 
@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
private Long versionId; 

@Column(name = "created_date") 
private LocalDate createdDate; 

これは例外の下にスロー

public ViewDetailSpecificationsBuilder createSearchSpecifications(ViewSearch view) { 
    ViewDetailSpecificationsBuilder builder = new ViewDetailSpecificationsBuilder(); 
    if (StringUtils.isNotBlank(view.getName())) { 
     builder.with("name", Operation.DEFAULT, view.getName()); 
    }  
    if (view.getStartDate() != null) { 
     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); 
     LocalDate date = LocalDate.parse(view.getStartDate(), formatter); 
     builder.with("createdDate", Operation.GREATHERTHANEQUALTO, date); 
    } 
    if (view.getVersion() != null) { 
     builder.with("version", Operation.DEFAULT, view.getVersion()); 
    } 
    return builder; 
} 

である:ここで

は私の実体である私は、フォーマットした場合

org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [Thu%Jun%01%00:00:00%AMT%2017] did not match expected type [java.util.Date (n/a)]; nested exception is java.lang.IllegalArgumentException: Parameter value [Thu%Jun%01%00:00:00%AMT%2017] did not match expected type [java.util.Date (n/a)] 

たstartDate(formatter.format(たstartDate))、それを上記の例外をスローします。

+0

を渡しているが多くのコードを示しています。具体的には、値 – ACV

答えて

0

いいえ、あなたはどちらかStringまたはjava.sql.Date

+0

を渡すところでは、java.time.LocalDateに変更しましたが、それも機能しません。 – Lusi

+0

それが 'java.util.Date'であることを確認してください – ACV

関連する問題