2010-11-30 3 views
0
내가 Java2EE를 사용하여 응용 프로그램을 짓고 있어요

업데이트 얻지 않고, 나는이 두 가지를 포함한 여러 주체가 :자바 EE 엔티티는 데이터베이스 데이터

엔티티 제품 (발췌문) :

@Entity 
public class Product implements Serializable { 
    @ManyToMany(mappedBy = "products") 
    private List<KB> kbs; 

    public List<KB> getKbs() { 
     return kbs; 
    } 
} 

법인 KB를 (K nowledge B ASE 기사) (발췌문) :

@Entity 
public class KB implements Serializable { 
    @ManyToMany 
    private List<Product> products; 
} 

당신이 알 수 있으며, 그들은 bidirecti 있습니다 그래서 JPA는 Product, KB 및 KB_Product의 세 테이블을 생성했습니다.

나는 또한 EJB의이 엔티티에 의해 지속 데이터에 액세스하기 위해 관리 콩, 여기에 내가 특정 제품과 관련된 KB의 목록을 검색하는 데 사용하는 코드의 조각이다가

:

@SessionScoped 
public class ProductController { 
    private List<KB> associatedKBs; 

    public List<KB> getAssociatedKBs() { 
     this.associatedKBs = current.getKbs(); 
     return associatedKBs; 
    } 
} 

모든 확인을 작동 : KB에 제품을 연결할 때 데이터베이스 (KB_Product 테이블)에 삽입되지만 getKBs() 메서드는 처음으로 호출 할 때만 업데이트 된 데이터를 반환합니다.

예 :
1. "컴퓨터"라는 제품을 만듭니다.
2. 새 KB 기사를 만들고이 KB와 "컴퓨터"를 연결합니다.
3.이 연결은 KB_PRODUCT 테이블에서 유지됩니다.
4. getKBs()가 처음으로 호출됩니다. 모든 것이 OK입니다.
5. 두 번째 KB 기사를 만들고이를 "컴퓨터"와 연결합니다.
6.이 연결은 KB_PRODUCT 테이블에서 유지됩니다.
7. getKBs()가 다시 호출되지만 응용 프로그램을 다시 배포 할 때까지 첫 번째 연결 만 반환합니다. 재배포 후에 모든 것이 나타납니다.

편집 : 처음에는 세션 문제라고 생각했습니다. 애플리케이션에서 로그 아웃 한 후 다시 로그인해도 문제가 해결되지 않고 재배포 만 가능합니다.

미리 감사드립니다.

답변