🚨🚨 Sobre o erro que tivemos durante a live, a correção era utilizar o método findById (como fizemos em um momento da live), porém na hora de LOGAR o valor, faltou a verificação do isPresent para verificar se havia retornado o produto já que a variável havia se tornado um Optional. Assim, conseguimos pegar o valor e atualizá-lo apenas quando o isPresent fosse true. Já subi a correção no repositório do Github para vocês conferirem: github.com/Fernanda-Kipper
Parabéns Fernanda, muito bom o live code. Gostei muito da live e principalmente como vc lidou com esse erro, pois acredito que é fundamental o acompanhamento do raciocínio também quando as coisas não dão certo de primeira. Na real sabemos que o dia a dia é assim, aprendemos conforme aparecem os problemas. Um abraço.
Ótimo conteúdo! Só pra tentar dar um pitaco aqui: O erro que ocorreu no getRefereceById() é que o tipo de retorno na prática não é um objeto e sim um Hibernate Proxy, que não é Serializable, e ai não tem como transformar em JSON no ResponseEntity (por isso a HttpMesageConversionException). Tem um método Hibernate.unproxy() que transforma isso pra objeto. Aconteceu esse mesmo erro cmg outra vez, mas no fim das contas achei melhor usar o findById() mesmo.
Olha você é uma das poucas pessoas que estou acompanhando referente ao aprendizado de Java, vou fazer o crud seguindo seu vídeo, continue com seus vídeos e com essa vontade de ensinar a quem quer aprender que com isso só enriquece a nós e principalmente a você. Muito obrigado.
Srta. Fernanda Kipper, Bom dia , Boa tarde, Boa noite! Que bom que você deixou gravada a live, ontem infelizmente não consegui assistir. Obrigado por ter deixado gravado, vou assistir agora ! Valeu!
adorei o video, estou acompanhando todos, muita inspiração, estudo faz 2 anos programação e estou focando em java no momento, seu canal está me ajudando muito no geral, obrigado!!
Já fui programador java quando era algo novo, e os frameworks ainda estavam em desenvolvimento, muita codificação para fazer tarefas simples. Em 2008 tínhamos como melhores pcs da faculdade uns dell GX620 com 512mb de memoria e hd de 160, com pentium 4, dava para se divertir codando com eclipse e netbeans, bons tempos, pena que fiquei enferrujado e acabei desanimando e indo pro hardware, alguma coisa ainda manjo de orientação a objeto. Depois que me formei em 2010 tentei continuar mas não tinha tanto conteúdo e material era escasso, sem falar na internet que era lenta e não tinha quase nada, só em forums e nem sempre ajudavam. Estou pensando em voltar a programação, salario de servidor publico não é tão bom e o custo de vida subiu muito, dá para trabalhar depois do serviço e nos fins de semana para tirar uns trocados, mas não sei em qual linguagem recomeçar, java ainda sei alguma coisa consistente, mas delphi to mais perdido que cego em tiroteio.
O caminho natural pra você seria Java novamente, mas também depende de quais seriam seus objetivos. Se você fosse, por exemplo, ganhar um dinheiro extra fazendo sites e aplicações de menor porte, nada empresarial, um PHP já te garantiria trabalho, é bem mais fácil que Java, as entregas costumam ser mais rápidas. O meu primeiro contato com Java foi em 2006 quando comecei a aprender. Mais ou menos em 2010 consegui vaga júnior e estágio, mas o negócio não vingou naquele momento e me afastei bem, voltando a estudar em 2020, e já tendo superado o conhecimento que eu tinha na época. O Java evoluiu muito de lá pra cá, está muito mais rápido e bem mais rico em recursos e frameworks.
@@marcos_silvestri Quando vi java em 2007 era bem mais complexo e os compiladores ainda eram muito manuais e simples, não tinha tanto plugin ou recurso extra quanto tem hoje. Ainda estou finalizando minha workstation, terminando vou voltar a estudar java e php para adicionar funções a página. Ainda tenho a mentalidade de criar tabelas para a página, tenho que aprender html dinâmico.
@@EvaristoBrag Uma coisa que não tinha na nossa época onde tivemos contato com Java pela primeira vez é uma enorme quantidade de frameworks e bicliotecas JavaScritp para a criação de interfaces, tanto que se desenvolveu uma nova carreira, a de desenvolvedor Front-End, usando coisas como React JS, Angular, Vue.JS entre muitas outras. Neste meio tempo, muitas outras linguagem apareceram e/ou ganharam notoriedade para desenvolvimento Back-End como Go, Python, Ruby, Rust, etc. Algo que não sei se sabe também, hoje em dia JavaScript não é mais aquela mera linguagem de script de antigamente pra fazer animações e interatividade em páginas web, hoje ele pode ser usado para o desenvolvimento de Back-End também, aplicações que rodam no servidor, inclusive programas Desktop. Muita coisa se agregou nesse mundo de lá pra cá, Java já superou a versão 20. PHP hoje em dia é uma linguagem bem madura, até orientação a objetos ela possui, muitos frameworks como Laravel, Sympony, etc. além de ter ficado bem mais rápida também. Opção é o que não falta, e os livros foram praticamente substituídos por cursos online, seja gratuitamente no RUclips ou em plataformas de cursos como Udemy e muitas outras.
27:00 tem espaço sim, comecei eu não sabia nada de java, ( e ainda nao sei kssk). e fui contradado, trabalhei uns 8 meses com mysql fazendo migrações e estou a 2 meses realizando pequenos ajustes no sistema da empresa em java.
Te amo, Fe.. adoro seus vídeos e explicações, bastante didática! E curto quando tem erros assim que a gente aprende ainda mais.. Obrigada pelos ensinamentos, inspiração! 💜 Ah, uma dúvida.. Você aprendeu Java em algum curso ou foi mais estudando por conta própria? Queria alguma dica sobre como/onde me aprofundar 😅
Boa noite galera. Obrigado Fernanda, consegui entender muita coisa com suas Lives. EXCELENTE !!! Pra quem irá fazer as migrations , segue abaixo um modelo de script para criar tabela níveis de usuário. Talvez seja útil. Como meu sistema terá 23 níveis de usuário, achei mais viável fazer um tabela só pra isso. Espero ter ajudado ..... Abç CREATE TABLE `niveis` ( `uuid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Identificador da chave binária.', `statusId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Status do nível.', `foto` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Foto principal.', `sigla` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Sigla.', `bairroCidade` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Bairro Cidade.', `georreferenciamento` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Georreferenciamento.', `nome` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Nome.', `observacoes` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Observações.', `cadastro` timestamp NOT NULL COMMENT 'Data de cadastro.', `atualizacao` timestamp NOT NULL COMMENT 'Última atualização.', PRIMARY KEY (`uuid`), UNIQUE KEY `id_UNIQUE` (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Tabela de níveis de usuários'
Oi, só uma correção a anotação EqualsAndHashCode não tem a ver com o id, tem a ver em quando vc vai comparar 2 objetos desse tipo, nessa caso product, como ele vai comparar, e pelo que vc colocou, vai ser por ID, então nesse caso se eles tiverem o mesmo ID serão iguais.
Pessoal, quem estiver enfrentando problemas com o Getters e Setters, é pq provavelmente está usando o eclipse assim como eu, e precisa instalar manualmente o lombok :)
@Kipperdev, primeiramente parabéns pelo tutorial, ajudou muito! Durante meus testes fiz um @POST para um dado já existente e o Spring atualizou automaticamente esses dados sem precisar do @PUT, é indicado usar também desta forma?
Muito bom mostrar o desenvolvimento e os erros que vão aparecendo e sendo tratados. Vi em outro canal uma outra programadora mostrando o "caminho feliz" o que é bom porque agiliza, mas dá a impressão que é tudo fácil e a apresentadora em vez de aproveitar e ser mais didática, foi atropelando. Por exemplo, não explicou, como você, que o Record é usado para DTOs. Quando aprendi Java usávamos classes derivadas das entidades com menos campos. PS: Você usou var em alguns momentos. É a mesma coisa que usar Object? Será a influência do JScript na sua formação?
Fernanda pode me ajudar, fiquei travado no end point por que eu uso Windows e uso o postman e uso também o java 11 e acho que nao rolou, poderia me ajudar com isso ? sou teu fã seus conteúdos tem em ajudado bastante.
Primeiramente obrigada Diogoo! Se puder colocar o erro que está tendo aqui, para eu conseguir ajudar mais facilmente, ou enviar lá no nosso discord, no chat exclusivo dos membros!
Quando você fala que cria o campo "Preço" com tipo de dado integer para valores e converte no frontend, isto é uma regra particular sua, ou é uma regra de desenvolvimento do Banco que você atua hoje em dia ?
Não sei se é isso, mas a classe Double não é precisa porque trabalha internamente em binário e o correto seria usar a classe BigDecimal, que é mais trabalhosa por não usar os operadores +. -, * e /. Armazenando em inteiro pode-se fazer as contas sem esse problema e deixando para o FrotEnd ou a camada de serviços a conversão para reais.
Oii, Carlos Essa prática de criar o campo "Preço" como integer é um padrão que adoto em alguns projetos, mas não era uma regra obrigatória do banco onde eu trabalhava. Faço isso porque facilita cálculos e evita problemas de arredondamento que podem acabar acontecendo usando float ou double. Além disso, armazeno valores em centavos (por exemplo, 1000 para representar R$ 10,00), e a conversão para um formato amigável no frontend garante que a lógica de exibição fique consistente. É uma prática comum em muitos sistemas, mas depende do contexto do projeto. 💜😊
Obrigado pelo video. Realmente me passou um conhecimento e me ajudou. Segue um feedback. - 2 hora de video, quem sabe meia hora de conteudo util, poderia ser editado um pouco melhor (mais objetivo) - deveria ter iniciar pelo flyway (connectar com o db) e nao pelo controller - faltou falar sobre a instalacao do plugin do lambok
Oii, Nelson! Todas as dependências estão aqui: github.com/Fernanda-Kipper/live-crud-java-spring/blob/initial-template/pom.xml Mas eu usei basicamente Lombok, Postgres e Flyway
Da sim! Porém teriamos que fazer algumas alterações no Front, por que o front está consumindo uma API GraphQL e nessa live construímos uma API Rest com o Java Spring. Ou você pode tentar construir uma API GraphQL com Java Spring também 😊
Aerosmith inspirando os dev a criar ferramentas kkkk conhecendo o flyaway agora mas sei que tem uma música do Aerosmith que se chama "Fly Away from here" rsrsrsr
Estou tendo o erro "org.postgresql.util.PSQLException: FATAL: password authentication failed for user "fernandakipper"". Alguém também teve e conseguiu resolver?
@protazioarts Eu resolvi. Vai em src > main > resources. Nesse arquivo, vc tem que mudar esses dados para a sua db local, ou então criar uma db com os mesmos usuario e senha que estão indicados lá.
@@jonasoliveirapereira2526lembro que fiquei batendo cabeça com isso uns 3 dias, mesmo com a senha "correta" dava esse fatal error, até eu descobrir que o postgres já cria uma senha padrão 😂😂
Observe que no seu tracer apareceu algo com Serializar o JSON aconteceu a mesma coisa enquanto seguia sua live, consegui resolver com essa anotação na minha entidade @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}), é algo com serialização e descerialização do JSON.
hoje em dia é recomendável fazer injeção de dependência por construtor, quem usa lombok pode apenas usar a anotação @RequiredArgsConstructor, só pra lembrar essa recomendação vem do próprio Spring
Fernanda, sobre o erro que ocorreu na live, estou acompanhando aqui e desde quando iniciou o erro no meu código eu SALVEI as alterações e não tive erro nem no PUT nem no DELETE. Meu código ficou assim: ``` @PutMapping("/{id}") public ResponseEntity updateProduct (@RequestBody @Valid ProductDto data, @PathVariable String id) { Product product = productRepository.getReferenceById(id); product.setName(data.name()); product.setPrice_in_cents(data.price_in_cents()); return ResponseEntity.ok(productRepository save(product)); } ```
Eu consegui lidar com o problema 1:48:20 utilizando o findById com o orElseThrow @PutMapping("/{id}") public Food updateFood( @PathVariable("id") Long id, @RequestBody @Validated RequestUpdateFoodDTO data ){ Food food = this.repository.findById(id).orElseThrow(); food.setTitle(data.title()); food.setImage(data.image()); food.setPrice(data.price()); repository.save(food); return food; }
🚨🚨 Sobre o erro que tivemos durante a live, a correção era utilizar o método findById (como fizemos em um momento da live), porém na hora de LOGAR o valor, faltou a verificação do isPresent para verificar se havia retornado o produto já que a variável havia se tornado um Optional.
Assim, conseguimos pegar o valor e atualizá-lo apenas quando o isPresent fosse true.
Já subi a correção no repositório do Github para vocês conferirem: github.com/Fernanda-Kipper
Parabéns Fernanda, muito bom o live code. Gostei muito da live e principalmente como vc lidou com esse erro, pois acredito que é fundamental o acompanhamento do raciocínio também quando as coisas não dão certo de primeira. Na real sabemos que o dia a dia é assim, aprendemos conforme aparecem os problemas. Um abraço.
Ótimo conteúdo! Só pra tentar dar um pitaco aqui: O erro que ocorreu no getRefereceById() é que o tipo de retorno na prática não é um objeto e sim um Hibernate Proxy, que não é Serializable, e ai não tem como transformar em JSON no ResponseEntity (por isso a HttpMesageConversionException). Tem um método Hibernate.unproxy() que transforma isso pra objeto. Aconteceu esse mesmo erro cmg outra vez, mas no fim das contas achei melhor usar o findById() mesmo.
Fê, obrigado por dedicar seu precioso tempo para compartilhar seu conhecimento, o seu canal sempre tem me ajudado demais. muito obrigaaaaaado.
Que bommm, Marcelo. Fico muito feliz que os vídeos venham te ajudando 💜
Olha você é uma das poucas pessoas que estou acompanhando referente ao aprendizado de Java, vou fazer o crud seguindo seu vídeo, continue com seus vídeos e com essa vontade de ensinar a quem quer aprender que com isso só enriquece a nós e principalmente a você. Muito obrigado.
Seu conteúdo é maravilhoso;
Te amo Fê! Adoro demais suas aulas!!!!! Que didática boa. Você é a minha inspiração 😁
This video is exactly what I was looking for to help me improve my programming skills. Thank you for making it!⭐♥
Srta. Fernanda Kipper, Bom dia , Boa tarde, Boa noite!
Que bom que você deixou gravada a live, ontem infelizmente não consegui assistir.
Obrigado por ter deixado gravado, vou assistir agora ! Valeu!
Espero que tenha gostado, Felipe 💜
Parabéns pelo conteúdo, muito didático e assertivo!!!!!!
adorei o video, estou acompanhando todos, muita inspiração, estudo faz 2 anos programação e estou focando em java no momento, seu canal está me ajudando muito no geral, obrigado!!
Aula tão boa que até me interessei pelo Spring! Parabéns pelo conteúdo e didática!
Que bomm, Lucas!
Fico feliz que tenha gostado 💜
Tem uma coisa que me deixa p.. vida.... Como esse canal não tem mais de 1M de seguidores??!! Inadmissível.
cara na boa, tua explicação de ip e porta foi melhor que do meu professor de redes da faculdade.
Parabéns.
Very Good Teacher Fernanda Kipper!
Isso ae fe, dev true, mesmo assim saiba que vc ajuda muita gente!! obrigado!
Já fui programador java quando era algo novo, e os frameworks ainda estavam em desenvolvimento, muita codificação para fazer tarefas simples. Em 2008 tínhamos como melhores pcs da faculdade uns dell GX620 com 512mb de memoria e hd de 160, com pentium 4, dava para se divertir codando com eclipse e netbeans, bons tempos, pena que fiquei enferrujado e acabei desanimando e indo pro hardware, alguma coisa ainda manjo de orientação a objeto. Depois que me formei em 2010 tentei continuar mas não tinha tanto conteúdo e material era escasso, sem falar na internet que era lenta e não tinha quase nada, só em forums e nem sempre ajudavam. Estou pensando em voltar a programação, salario de servidor publico não é tão bom e o custo de vida subiu muito, dá para trabalhar depois do serviço e nos fins de semana para tirar uns trocados, mas não sei em qual linguagem recomeçar, java ainda sei alguma coisa consistente, mas delphi to mais perdido que cego em tiroteio.
Vai de Java, fica brabo e depois me paga uma coquinha
Delphi nem sei se ainda tem mercado. Vá de Java
O caminho natural pra você seria Java novamente, mas também depende de quais seriam seus objetivos. Se você fosse, por exemplo, ganhar um dinheiro extra fazendo sites e aplicações de menor porte, nada empresarial, um PHP já te garantiria trabalho, é bem mais fácil que Java, as entregas costumam ser mais rápidas.
O meu primeiro contato com Java foi em 2006 quando comecei a aprender. Mais ou menos em 2010 consegui vaga júnior e estágio, mas o negócio não vingou naquele momento e me afastei bem, voltando a estudar em 2020, e já tendo superado o conhecimento que eu tinha na época.
O Java evoluiu muito de lá pra cá, está muito mais rápido e bem mais rico em recursos e frameworks.
@@marcos_silvestri Quando vi java em 2007 era bem mais complexo e os compiladores ainda eram muito manuais e simples, não tinha tanto plugin ou recurso extra quanto tem hoje. Ainda estou finalizando minha workstation, terminando vou voltar a estudar java e php para adicionar funções a página. Ainda tenho a mentalidade de criar tabelas para a página, tenho que aprender html dinâmico.
@@EvaristoBrag Uma coisa que não tinha na nossa época onde tivemos contato com Java pela primeira vez é uma enorme quantidade de frameworks e bicliotecas JavaScritp para a criação de interfaces, tanto que se desenvolveu uma nova carreira, a de desenvolvedor Front-End, usando coisas como React JS, Angular, Vue.JS entre muitas outras.
Neste meio tempo, muitas outras linguagem apareceram e/ou ganharam notoriedade para desenvolvimento Back-End como Go, Python, Ruby, Rust, etc.
Algo que não sei se sabe também, hoje em dia JavaScript não é mais aquela mera linguagem de script de antigamente pra fazer animações e interatividade em páginas web, hoje ele pode ser usado para o desenvolvimento de Back-End também, aplicações que rodam no servidor, inclusive programas Desktop.
Muita coisa se agregou nesse mundo de lá pra cá, Java já superou a versão 20. PHP hoje em dia é uma linguagem bem madura, até orientação a objetos ela possui, muitos frameworks como Laravel, Sympony, etc. além de ter ficado bem mais rápida também.
Opção é o que não falta, e os livros foram praticamente substituídos por cursos online, seja gratuitamente no RUclips ou em plataformas de cursos como Udemy e muitas outras.
Parabéns pelas aulas Fer ❣ além de Linda muito Inteligente 👏👏 já sou seu fã
Parabéns pelo conteúdo, muito bom!
Obrigadaa Dan! 💜
27:00 tem espaço sim, comecei eu não sabia nada de java, ( e ainda nao sei kssk). e fui contradado, trabalhei uns 8 meses com mysql fazendo migrações e estou a 2 meses realizando pequenos ajustes no sistema da empresa em java.
estou na correria aqui pra pegar meu primeiro trampo em java, teu comentario será lembrado!
@@incalubs só vai mano, inclusive aqui na empresa tá contratando aínda, eles dão muita oportunidade pra quem tá começando.
@@joserodrigues5899 ta tendo vaga ainda irmão?
opa cara que bacana, qual a empresa?@@joserodrigues5899
Te amo, Fe.. adoro seus vídeos e explicações, bastante didática!
E curto quando tem erros assim que a gente aprende ainda mais.. Obrigada pelos ensinamentos, inspiração! 💜
Ah, uma dúvida.. Você aprendeu Java em algum curso ou foi mais estudando por conta própria?
Queria alguma dica sobre como/onde me aprofundar 😅
Fazer o crud é muito bom ahh❤❤❤
Boa noite galera. Obrigado Fernanda, consegui entender muita coisa com suas Lives. EXCELENTE !!!
Pra quem irá fazer as migrations , segue abaixo um modelo de script para criar tabela níveis de usuário. Talvez seja útil. Como meu sistema terá 23 níveis de usuário, achei mais viável fazer um tabela só pra isso.
Espero ter ajudado ..... Abç
CREATE TABLE `niveis` (
`uuid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT
'Identificador da chave binária.',
`statusId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT
'Status do nível.',
`foto` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT
'Foto principal.',
`sigla` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT
'Sigla.',
`bairroCidade` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT
'Bairro Cidade.',
`georreferenciamento` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT
'Georreferenciamento.',
`nome` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT
'Nome.',
`observacoes` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT
'Observações.',
`cadastro` timestamp NOT NULL COMMENT
'Data de cadastro.',
`atualizacao` timestamp NOT NULL COMMENT
'Última atualização.',
PRIMARY KEY (`uuid`),
UNIQUE KEY `id_UNIQUE` (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Tabela de níveis de usuários'
Perfeito, obrigada por compartilhar Leo!! E muito obrigada, fico feliz que gostou da live 💜
seu conteúdo é muuuuito top queridaaa
Obrigadaa! 💜
voce é muito simpatica
Ótima aula ! Sobre o @Getter e @Setter, poderia usar o @Data, que abrangeria outros métodos também, por exemplo para construtores.
Oi, só uma correção a anotação EqualsAndHashCode não tem a ver com o id, tem a ver em quando vc vai comparar 2 objetos desse tipo, nessa caso product, como ele vai comparar, e pelo que vc colocou, vai ser por ID, então nesse caso se eles tiverem o mesmo ID serão iguais.
Excelente vídeo.
traz mais conteúdo de java fer pfvvvvvv, obrigado por essa live!!
Ótima aula. Porque não se aventurar codando, muito bom.
04/06/2024 ta marcado a primeira vez a pratiquei Spring 😊
Pessoal, quem estiver enfrentando problemas com o Getters e Setters, é pq provavelmente está usando o eclipse assim como eu, e precisa instalar manualmente o lombok :)
1:05:03 construindo o método POST;
1:15:23 conversando com o chat
Excelente !
alguem ainda tem o template inicial do projeto ?
@Kipperdev, primeiramente parabéns pelo tutorial, ajudou muito!
Durante meus testes fiz um @POST para um dado já existente e o Spring atualizou automaticamente esses dados sem precisar do @PUT, é indicado usar também desta forma?
“imagina um tutorial de 4 horas ia ser maçante”
poxa eu ia achar um sonho kkkkk só conteúdo bom
queria pega o template da aplicaçao mas ta bloqueado para downloads
Muito bom mostrar o desenvolvimento e os erros que vão aparecendo e sendo tratados. Vi em outro canal uma outra programadora mostrando o "caminho feliz" o que é bom porque agiliza, mas dá a impressão que é tudo fácil e a apresentadora em vez de aproveitar e ser mais didática, foi atropelando. Por exemplo, não explicou, como você, que o Record é usado para DTOs. Quando aprendi Java usávamos classes derivadas das entidades com menos campos.
PS: Você usou var em alguns momentos. É a mesma coisa que usar Object? Será a influência do JScript na sua formação?
Amei ❣️
💜
Fernanda pode me ajudar, fiquei travado no end point por que eu uso Windows e uso o postman e uso também o java 11 e acho que nao rolou, poderia me ajudar com isso ?
sou teu fã seus conteúdos tem em ajudado bastante.
Primeiramente obrigada Diogoo!
Se puder colocar o erro que está tendo aqui, para eu conseguir ajudar mais facilmente, ou enviar lá no nosso discord, no chat exclusivo dos membros!
Quando você fala que cria o campo "Preço" com tipo de dado integer para valores e converte no frontend, isto é uma regra particular sua, ou é uma regra de desenvolvimento do Banco que você atua hoje em dia ?
Não sei se é isso, mas a classe Double não é precisa porque trabalha internamente em binário e o correto seria usar a classe BigDecimal, que é mais trabalhosa por não usar os operadores +. -, * e /. Armazenando em inteiro pode-se fazer as contas sem esse problema e deixando para o FrotEnd ou a camada de serviços a conversão para reais.
Oii, Carlos
Essa prática de criar o campo "Preço" como integer é um padrão que adoto em alguns projetos, mas não era uma regra obrigatória do banco onde eu trabalhava. Faço isso porque facilita cálculos e evita problemas de arredondamento que podem acabar acontecendo usando float ou double.
Além disso, armazeno valores em centavos (por exemplo, 1000 para representar R$ 10,00), e a conversão para um formato amigável no frontend garante que a lógica de exibição fique consistente. É uma prática comum em muitos sistemas, mas depende do contexto do projeto. 💜😊
Alguém sabe listar as dependencias usadas la no spring io?
O Json e o banco de dados trata I'd como string mais o código não aceita essa tipagem no código , fiquei preso nesse erro um tempo atrás já kkk
27:35 - Pô se vc é junior eu sou um feto... kkkkkkk
Porque você não usa o visual studio code para codar com spring?
Intellij wayyyyy bettter than vs code
pelo amor de Deus, quem é doido de usar vs code pra java?
Obrigado pelo video. Realmente me passou um conhecimento e me ajudou.
Segue um feedback.
- 2 hora de video, quem sabe meia hora de conteudo util, poderia ser editado um pouco melhor (mais objetivo)
- deveria ter iniciar pelo flyway (connectar com o db) e nao pelo controller
- faltou falar sobre a instalacao do plugin do lambok
Só 3 anos programando 😳?
Não imagina a motivação que me deu😅 eu tenho 2
Quais sao as dependencias do Spring Initializr
Oii, Nelson! Todas as dependências estão aqui: github.com/Fernanda-Kipper/live-crud-java-spring/blob/initial-template/pom.xml
Mas eu usei basicamente Lombok, Postgres e Flyway
Bom demais ver as roupas dela tudo amontoada na hora de liberar o gatinho. Não sou o único dev que faz monte de roupas. 🤣
Parabéns pela aula qual foi as suas fontes de estudo? Cursos que te ajudou na sua jornada java? Aula muito top..
Fonte pra qualquer coisa de programação: Google, Stackoverflow
Esse back-end usando Java Spring, da para conectar com o projeto front-end que você fez o Capputeeno? Usar eles dois junto no projeto?
Da sim! Porém teriamos que fazer algumas alterações no Front, por que o front está consumindo uma API GraphQL e nessa live construímos uma API Rest com o Java Spring. Ou você pode tentar construir uma API GraphQL com Java Spring também 😊
podia ensinar a criação de cada arquivo lateral esquerdo ... não estou conseguindo criar :(
que delicia de ouvir o barulho do teclado, poderia informa qual teclado vc usa ?
hahahaha é o Magic Keyboard, esse aquii
amzn.to/3jElN39
Alguém mais está tendo o erro: error: release version 17 not supported
?
eu, vc conseguiu resolver ele?
👏👏👏
A que mundo chegamos para explicar java ela da exemplos de node kkkk
Sim, muito bom né, ficou bem mais claro
Mulheeeer sabe um site pra mim hospedar backend java que seja gratuito? Tô anos procurando e não acho
Oii, Lari
A AWS tem um free tier que você pode usar. Também tem o render.io, que eu conheço e é bem bom (pra Java vai ter que usar Docker)
Aerosmith inspirando os dev a criar ferramentas kkkk conhecendo o flyaway agora mas sei que tem uma música do Aerosmith que se chama "Fly Away from here" rsrsrsr
Hahahah
Mano dev . Assisti aqui po. Essa live
Alguém também teve problema ao adicionar o @Valid? Simplesmente não consta para usar
o meu nao apareceu, usei o @validated e deu certo igual
tia, aumenta o limite do meu cartão do itau...... obg...
kkkk
Você conhece alguém que faz esse trabalha no C#?
:)
:D
Hospedar e facil . Dificil e ser back
Ficam ensinando essas portas na internet para os criminosos parassem a perna nas pessoas. Que porrrrr
Fernanda, você pretende abrir um onlyfans?
Estou tendo o erro "org.postgresql.util.PSQLException: FATAL: password authentication failed for user "fernandakipper"". Alguém também teve e conseguiu resolver?
@protazioarts Eu resolvi. Vai em src > main > resources. Nesse arquivo, vc tem que mudar esses dados para a sua db local, ou então criar uma db com os mesmos usuario e senha que estão indicados lá.
@@jonasoliveirapereira2526lembro que fiquei batendo cabeça com isso uns 3 dias, mesmo com a senha "correta" dava esse fatal error, até eu descobrir que o postgres já cria uma senha padrão 😂😂
Observe que no seu tracer apareceu algo com Serializar o JSON
aconteceu a mesma coisa enquanto seguia sua live, consegui resolver com essa anotação na minha entidade
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}), é algo com serialização e descerialização do JSON.
hoje em dia é recomendável fazer injeção de dependência por construtor, quem usa lombok pode apenas usar a anotação @RequiredArgsConstructor, só pra lembrar essa recomendação vem do próprio Spring
Fernanda, sobre o erro que ocorreu na live, estou acompanhando aqui e desde quando iniciou o erro no meu código eu SALVEI as alterações e não tive erro nem no PUT nem no DELETE. Meu código ficou assim:
```
@PutMapping("/{id}")
public ResponseEntity updateProduct (@RequestBody @Valid ProductDto data, @PathVariable String id) {
Product product = productRepository.getReferenceById(id);
product.setName(data.name());
product.setPrice_in_cents(data.price_in_cents());
return ResponseEntity.ok(productRepository save(product));
}
```
Boaaa! Que bom que não rolou o erro ai
Eu devo ter me perdido ali no momento da live mesmo hahahaha
Eu consegui lidar com o problema 1:48:20 utilizando o findById com o orElseThrow
@PutMapping("/{id}")
public Food updateFood(
@PathVariable("id") Long id,
@RequestBody
@Validated RequestUpdateFoodDTO data
){
Food food = this.repository.findById(id).orElseThrow();
food.setTitle(data.title());
food.setImage(data.image());
food.setPrice(data.price());
repository.save(food);
return food;
}