A partir da documentação do hibernate
descrobri que o método findByExample()
não busca por campos que são Pk ou Fk
Se alguém tiver idéia de como montar um
método que procure por todos os campos
da tabela através de um objeto de exemplo,
posta aeh pra gente!!!
Eu pensei em criar uma query pra cada
possibilidade de preenchimento dos campos,
mas o código fica extenso e pouco legível,
principalmente para tabelas maiores.
O que o pab quis dizer é “se você só sabe usar o martelo, tudo se parece com pregos. Use a ferramenta mais adequada para seu serviço, como uma chave de fenda.”
Uma boa prática é não mostrar o ID real ao usuário. Se você precisa de uma chave de busca considere usar um campo extra que seja unique mas que não seja PK.
E mesmo nesse caso, a busca por esse campo unique (ou o ID caso você resolva não usar um campo extra) não deveria ser executada em conjunto com outros campos. Veja que uma busca por nome=“José” e sobrenome=“Silva” pode trazer vários usuários com esse nome. Mas uma busca pelo id ‘341’ vai trazer exatamente o usuário que possue esse ID, ou uma lista vazia caso nenhum possua.