O erro que está sendo reportado é devido a falta de Id? Ou esse select que fiz está errado?
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class FechamentoCaixa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@CreationTimestamp
private LocalDateTime dateFechamentoCaixa;
@UpdateTimestamp
private LocalDateTime dateAtualizacaoFechamentoCaixa;
@Column(name = "filial_id")
private Long idFilial;
@Column(name = "user_id")
private Long idUser;
@Column(name = "observacao")
private String observacao;
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "fechamentoCaixaItens", joinColumns = @JoinColumn(name = "fechamento_caixa_id"))
private Set<FechamentoCaixaItem> produtos = new HashSet<>();
public FechamentoCaixa(long idFilial, long idUser, Set<FechamentoCaixaItem> produtos) {
this.idFilial = idFilial;
this.idUser = idUser;
this.produtos = produtos;
}
}
@Embeddable
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class FechamentoCaixaItem {
private Long id;
private int inicio;
private int entrada;
private int perda;
private int quantidadeFinal;
public FechamentoCaixaItem(FechamentoCaixaItemDto fechamentoCaixa) {
this.id = fechamentoCaixa.getId();
this.inicio = fechamentoCaixa.getInicio();
this.entrada = fechamentoCaixa.getEntrada();
this.perda = fechamentoCaixa.getPerda();
this.quantidadeFinal = fechamentoCaixa.getQuantidadeFinal();
}
}
@RestController
public class FechamentoCaixaController {
//codigo ignorado
@GetMapping("/buscaFechamentoCaixaProduto/{idFilial}/{idProduto}/{dataInicial}/{dataFinal}")
public ResponseEntity<Object> buscaFechamentoCaixaProduto(@PathVariable(value = "idFilial") Long idFilial,
@PathVariable(value = "idProduto") Long idProduto,
@PathVariable(value = "dataInicial") @DateTimeFormat(pattern = "yyyy-MM-dd") String dataInicial,
@PathVariable(value = "dataFinal") @DateTimeFormat(pattern = "yyyy-MM-dd") String dataFinal) throws ParseException {
FechamentoCaixaItem optionalFechamentoCaixaItem = fechamentoCaixaItemService.selectFechamentoCaixaProduto(idFilial, idProduto, Util.dateToTimestamp(dataInicial), Util.dateToTimestamp(dataFinal));
if (optionalFechamentoCaixaItem != null) {
return ResponseEntity.status(HttpStatus.OK).body(optionalFechamentoCaixaItem);
}
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("FECHAMENTO_CAIXA_NAO_ENCONTRADO");
}
}
@Service
public class FechamentoCaixaItemServiceImpl implements FechamentoCaixaItemService{
final FechamentoCaixaItemRepository fechamentoCaixaItemRepository;
@Override
public FechamentoCaixaItem selectFechamentoCaixaProduto(Long filialId, Long produtoId, Timestamp dataInicial, Timestamp dataFinal) {
return fechamentoCaixaItemRepository.selectFechamentoCaixaProduto(filialId, produtoId, dataInicial, dataFinal);
}
}
@Repository
public interface FechamentoCaixaItemRepository extends JpaRepository<FechamentoCaixaItem, Long> {
@Transactional
@Modifying
@Query(value = "select fechamento_caixa_itens.* " +
"from fechamento_caixa , fechamento_caixa_itens " +
"where fechamento_caixa.id = fechamento_caixa_itens.fechamento_caixa_id " +
"and fechamento_caixa.filial_id = :filialId " +
"and fechamento_caixa_itens.id = :produtoId " +
"and fechamento_caixa.date_fechamento_caixa between :dataInicial and :dataFinal", nativeQuery = true)
FechamentoCaixaItem selectFechamentoCaixaProduto(Long filialId, Long produtoId, Timestamp dataInicial, Timestamp dataFinal);
}
e estou obtendo isso no run do projeto:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2023-01-09 00:37:31.697 ERROR 11632 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'fechamentoCaixaController' defined in file [E:\projetos\parcao-back\target\classes\com\parcao\controllers\FechamentoCaixaController.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'fechamentoCaixaItemServiceImpl' defined in file [E:\projetos\parcao-back\target\classes\com\parcao\security\services\FechamentoCaixaItemServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fechamentoCaixaItemRepository' defined in com.parcao.repository.FechamentoCaixaItemRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: The given domain class does not contain an id attribute!
Poderiam me ajudar a apontar onde estou errando?