エンティティのパラメータ名に "_"文字が含まれているため、春にカスタムクエリを作成する際に問題が発生しています: "game_date"Spring JPA + CRUD - カスタムクエリは_文字を許可していませんか?
私のテーブルには、「game_date」という名前の列もあります。
私は方法以下の作成した:
List<Games> findByGame_dateAndOpponent(@Param("game_date") Date game_date, @Param("opponent") String opponent);
が、私は私のアプリを起動したとき、それは一種の例外を除いてクラッシュだ:「org.springframework.data.mapping.PropertyReferenceException:タイプが見つかりませんプロパティgamedateをゲーム!"。 EntityメソッドとQueryメソッドの両方で "gameDate"にパラメータ名を変更した後、それは不平を停止し、実際に予想されるエントリを返しています。しかし、同時に、Date型の単純な通常の列である検索クエリでは、 "game_date"列から値を返しません。私はこのことで何が起こっているのか分かりません。
DB私はMySqlを使用しています。
エンティティ:
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "games")
public class Games {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_game")
private int id;
@Column(name = "game_date", columnDefinition = "DATE")
@Temporal(TemporalType.DATE)
private Date gameDate;
public Date getGame_date() {
return gameDate;
}
public void setGame_date(Date _game_date) {
this.gameDate = _game_date;
}
}
とリポジトリ:
import java.sql.Date;
import java.util.List;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
@RepositoryRestResource
public interface GamesRepository extends CrudRepository< Games , Integer > {
List<Games> findById(@Param("id") int id);
List<Games> findAll();
List<Games> findByGameDateAndOpponent(@Param("game_date") Date game_date, @Param("opponent") String opponent);
}
私は気づいていない私はゲッターとセッターを変更するのを忘れて...ありがとう! – Anton
質問を回答したものとしてマークするか、有益な場合はそれをupvoteすることができます –