Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

263
Visualizações
Accessing to Spring beans in Hibernate managed entity method marked by @PostLoad

I would like to enrich entity with additional data on load from DB inside @PostLoad.

How can I access to Spring managed beans inside @PostLoad method?

I use ugly solution with static accessor:

@Service
public class StaticApplicationContext implements ApplicationContextAware {
    private static ApplicationContext ctx = null;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        ctx = applicationContext;
    }

    public static ApplicationContext getApplicationContext() {
        return ctx;
    }
}

@Entity
public class Car {
    @Id
    private Long id;
    ...
    @Transient
    private List<XType> details;

    @PostLoad
    private void onLoad() {
         XTypeRepository repo = StaticApplicationContext.getCtx()
                .getBean(XTypeRepository.class) ;
         this.details = repo.findByCarId(this.id);
    }
}

Corresponding idea for static access described in Accessing spring beans in static method

Is there more idiomatic solution / framework sugar?

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

@OneToMany
@JoinFormula(value = "SELECT * FROM xTypeTable xt WHERE xt.carId = id") 
private List<XType> pastArticles;

Can't you just use JoinFormula and load the data with standard tools? Just write SQL which retrieves data for the XType. In the example above replace id with column name of id property (if it's different)

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda