3
respostas

Objeto Managed o tempo todo

Olá, estou implementando os conhecimentos do curso em um projeto, e vi que o objeto permanece "Managed" durante todo o request, ou seja se eu setar qualquer valor ele é persistido no banco.

Como definir a duração do escopo dos DAO?

3 respostas

Jefferson, boa tarde. Não entendi a sua pergunta. Pode me da um exemplo para eu me contextualizar melhor?

olá, obrigado por responder, vou tentar explicar melhor.

Antes eu tinha este projeto rodando no GlassFish com Jersey e CDI .

Então quando eu utilizava por exemplo um método de um DAO que foi injetado por exemplo para pegar um objeto, se eu modificasse qualquer atributo desse objeto ele não era persistido no banco, somente se eu utilizasse um método para faze-lo. Porem hoje com o Bean em stateless e o gerenciamento pelo container, se eu modificar qualquer coisa no objeto acabei de pegar com a JPA, automaticamente isso é persistido no banco.

Pelo que sei isso tem a ver com o objeto ainda estar Managed pela JPA .. algo assim.

Eu vi que se eu desabilitar o gerenciamento pelo container com @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED), isso para de acontecer, porem todos os relacionamentos fica Detached, ai a JPA não popula ao utilizar os get.

Bom estou aprendendo a lidar com esse tipo de comportamento, mas no começo atrapalhou um pouco.

Jefferson, você teria como me mostrar o código?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software