JPA Repository.findById () devuelve un valor nulo pero el valor es existir en db

Jin-guk Park:

Estoy desarrollando proyecto de arranque primavera, utilizando JPA.

Lo que quiero saber es repository.findById (id) devuelve el método nula, mientras que los datos están disponibles en la base de datos.

Funciones save()y findAll()están trabajando muy bien. Cuando me encontré con el mismo código en entorno de prueba JUnit, pero completamente trabajado. Si los datos se codifica duro, como memberRepository.findById("M001");, que funciona bien.

Entidad

@Entity
@Table(name="df_member")
public class DfMember {

    @Column(name="member_type")
    private String memberType;

    @Id
    @Column(name="id")
    private String id;

        ...columns...
        ...Getters/Setters.....

Controlador

    @ResponseBody
    @RequestMapping(value="/checkIdDuplicate", method=RequestMethod.POST)
    public boolean checkIdDuplicate(@RequestBody String id) {

       return memberService.isExistByUserId(id);
    }

MemberService

    public boolean isExistByUserId(String id) {
        Optional<DfMember> member = memberRepository.findById(id);
        return member.isPresent();
    }

Repositorio

public interface MemberRepository extends CrudRepository<DfMember, String> {

}

Debe devolver objeto miembro pero es nula.

Alexpandiyan Chokkan:

Usted tiene que cambiar @RequestBodya @RequestParam. Por favor, actualice el código del controlador de la siguiente manera.

    @ResponseBody
    @RequestMapping(value="/checkIdDuplicate", method=RequestMethod.POST)
    public boolean checkIdDuplicate(@RequestParam String id) {

       return memberService.isExistByUserId(id);
    }

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=231967&siteId=1
Recomendado
Clasificación