春データJPAはあなたのフィールド名が正しく派生クエリを生成するために、特定の規則に従っていることを前提としてい
@Repository
public interface CustomerRepository extends JpaRepository<CustomerEntity, Long> {
CustomerEntity findByfacebookID(String facebookID);
CustomerEntity findByPhoneAndPasswordAndIsDeleted(String phone, String password, Boolean isdeleted);
実体に機能していない、削除されます。大文字の問題。 isdeleted != isDeleted
。さらに、IsXYZ
は、Spring Data JPAクエリでspecial meaningとなっており、構文にあいまい性が発生する可能性があります。一般的に、慣習に固執し、物事がはるかに簡単になります。
@Repository
public interface CustomerRepository extends JpaRepository<CustomerEntity, Long> {
CustomerEntity findByfacebookID(String facebookID);
CustomerEntity findByPhoneAndPasswordAndDeleted(String phone, String password, Boolean deleted);
}
@Entity
@Table(name = "CUSTOMER")
public class CustomerEntity {
@Column(name = "IS_DELETED", length = 3, nullable = false)
private Boolean deleted;
// phone, password, other fields...
}
要するに:むしろ、フィールド名に比べ、一般的にアクセサのメソッド名に使用されている(あなたのブール変数からis
プレフィックスを削除)。
なぜあなたはプロパティ名にスペースがありますか? 'private Boolean is deleted'で正確に – DevDio