2012-10-11 1 views
0

JDO 주석이있는 Java 클래스가 포함 된 웹 프로젝트가 있습니다. 내 데이터베이스는 MongoDB입니다. 내 프로젝트에서 datanucleus를 사용합니다.Mongodb-dataneucleus의 문서 업데이트

ListAcc list = new ListAcc(); 
    list.name = "created"; 
    pm.makePersistent(list); 

그런 다음,이 코드 내 문서를 검색 : 내 데이터베이스 내 자바 객체를 유지하기 위해, 나는이 코드를 사용하는 시점까지

ListAcc l = pm.getObjectById(ListAcc.class,"507675823004b91181edc746"); 

을, 모든 노력하고 있습니다. 자, 내 문서를 업데이트하고 싶습니다. 이를 위해 다음 코드를 사용합니다.

Transaction tx = pm.currentTransaction(); 
    tx.begin(); 
    try { 
     ListAcc l = pm.getObjectById(ListAcc.class,"507675823004b91181edc746"); 
     l.name = "changing"; 
     tx.commit(); 
    } catch(Exception e) { 
     tx.rollback(); 
    } 

그러나이 작업은 내 문서를 업데이트하지 않습니다.

내 문서를 업데이트 할 수 있도록 도와 주시겠습니까?

덕분에 많은

답변

1

당신은 그 클래스에 PUBLIC 필드를 업데이트 의미? 첫째, 퍼블릭 필드를 사용하는 나쁜 프로그래밍 습관이고, 둘째 퍼시스턴스 컨텍스트에서이를 수행하기를 원할 경우 @PersistenceAware (또는 클래스의 setter 메소드 만 사용)로 이러한 공용 필드를 업데이트하는 클래스에 주석을 추가해야합니다. 모든 것은 DN 문서에 있습니다

+0

실제로 ... 그것은 작동합니다. 고마워 – user1636532