내 데이터베이스를 설계하고 있는데 Entity 자체에서 데이터베이스에 액세스해야하는 상황에 이르렀습니다.EntityListener에서 EJB를 사용하려면 어떻게해야합니까?
나는 Why sometimes a reference to an EntityManager inside JPA entities is needed을 읽었습니다.
그리고 EntityListener에서 EJB에 액세스 할 수 있는지 궁금합니다.
public class MyEntityListener {
@PrePersist
private void onPrePersist(final Object object) {
// find an EJB
// and set those required values
// which each resides in a specific table.
}
}
이것이 가능합니까 (또는?)?
엔티티 청취자에서 EJB를 주입하는 것은 Weld + Hibernate (WildFly 8 ~ 10)의 CDI'@ Inject'를 통해 항상 효과가있었습니다. 그러나 실제로 작동하지 않는 것으로보고 한 사용자, 실제로 사용한 환경의 정확한 버전을보고하지 않은 이유에 대해 확신 할 수 없었습니다. 적어도이 버전은 특정 GlassFish 버전 (Hibernate 대신 EclipseLink를 사용함)에서 실패하는 것으로 알려져 있습니다. – BalusC
@BalusC 클래스 패스에있는 클래스의 인스턴스가 아닌 EJB를 주입하고 있습니까? –