6
respostas

Json com relacionamento

Caros, segue meu problema. Tenho um classe que possui relacionamento e se deixo sem annotation no @OneToMany do tipo fetch = Fetcher.EAGER me retorna o erro: "failed to lazily initialize a collection of role", que desaparece prontamente assim que faço a anotação, mas que me retorna outro erro que segue: Alguém tem uma dica?

6 respostas

Oi Clerman,

Tá faltando o comecinho da StackTrace, pode postar o erro completo?

Abraço!

Oi Joviane. O Eclipse me da o erro assim já, é uma lista enorme:

Oi Clerman,

Seu console do eclipse deve estar com um limite de linhas que ele mostra... O importante é o começo da stacktrace que é onde ele mostra a exception que está acontecendo.

Tenta mudar o tamanho do console do Eclipse para conseguirmos ver o começo do erro.

Abraço!

Eis:

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.StackOverflowError
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.StackOverflowError: null
    at

Clerman,

Tem cara que o relacionamento das duas entidades está sendo mapeado bidirecionalmente e de forma eager por isso o StackOverflowError.

Como estão as suas classes?

Abraço!

Esta assim:

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "categorias_has_receitas",
joinColumns = @JoinColumn(name = "receitas_cat_id"), 
inverseJoinColumns = @JoinColumn(name = "categoria_id"))
    private List<CatTipoReceitas> tipoReceitas;
    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(
            name = "categorias_has_receitas", 
            joinColumns = @JoinColumn(name = "categoria_id"), 
            inverseJoinColumns = @JoinColumn(name = "receitas_cat_id"))
    private List<MinhasReceitas> minhasReceitas;