Я пытаюсь сделать POC - используя JpaRepository
отфильтровать данные, добавив два условия.
Я написал код, подобный приведенному ниже
public interface TemplateRepository extends JpaRepository<Template, Long> {
List<Template> findByTemplateNameContains(String templateName);//This is Working Fine
List<Template> findByTemplateNameAndActiveFlagContains(String templateName, String activeFlag);// My POC
}
templateName
столбец - это VARCHAR2
, а activeFlag
- это Char
в базе данных Oracle. Я пытаюсь отфильтровать данные как templatename
, так и activeFlag
.
Я передаю входной объект в запросе приложения SoapUI (POST
).
{
"netting":"karu_test",
"activeFlag": "Y"
}
но я получаю приведенную ниже ошибку
"Значение параметра [% Y%] не соответствует ожидаемому типу [java.lang.Character (n / a)]; вложенное исключение - java.lang.IllegalArgumentException: значение параметра [% Y%] не соответствует ожидаемому типу [java.lang.Character (n / a)] "
Я понимаю эту ошибку, например, столбец ACTIVE_FLAG
равен CHAR(1)
, поэтому несоответствие типов произошло. Но как добиться той же функциональности?
Более того ... как использовать объединение нескольких таблиц и условия в JpaRepository
Я изменил тип activeFlag
на Char
все еще яполучить ту же ошибку.
Шаблон класса
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.util.Date;
import java.util.List;
@Entity
@Table(name="TEMPLATE_DEF")
@Getter
@Setter
public class Template {
@Column(name="TEMPLATE_ID")
@Id
private String nettingTemplateId;
@Column(name="TEMPLATE_NAME")
private String templateName;
@Column(name="LAST_UPDATE")
private Date lastUpdate;
@Column(name="UPDATE_USER_ID")
private Integer updUsrId;
@Column(name="ACTIVE_FLAG")
private char activeFlag;
@Column(name="VERSION")
private Integer Version;
@Column(name="CREATION_DATE")
private Date creationDate;
@Column(name="CREATE_USER_ID")
private Integer createUsrId;
}