2013-11-27 1 views
-2

У меня есть следующий код в нашем классе действий Struts:код Toplink не обновляет Все поля

 clerkReviewDao.transaction(clerkReviewCaseRecipient, 
        new TransactionBlock<ClerkReviewCaseRecipient>() { 
         public void merge(
           ClerkReviewCaseRecipient detached, 
           ClerkReviewCaseRecipient managed) { 
          managed.setNotify("Y"); 
          managed.setSysDttm(new Date()); 
          managed.setSysPIN(HttpDBSessionMgr.getSessionInfo(request).getUserPin()); 
         } 
        }); 

Код выше вызовов в нашем классе BaseDAO (который использует Toplink)

import oracle.toplink.publicinterface.Session; 
import oracle.toplink.publicinterface.UnitOfWork; 

    public T transaction(T detached, TransactionBlock transactionBlock) throws BadDBConnection { 
     Session session = centralSourceInjector.inject(); 
     UnitOfWork uow = session.acquireUnitOfWork(); 

     try { 
      T managed = (T)uow.registerObject((T) detached); 
      transactionBlock.merge(detached, managed); 

      uow.commit(); 
      session.refreshObject(detached); 
      return managed; 
     } catch(OptimisticLockException ole){ 
      uow.rollbackTransaction(); 
      throw ole; 
     } finally { 
      uow.release(); 
     } 
    } 

код только обновляет столбец «Уведомлять», столбцы sysDttm и SysPin вообще не обновляются. Это две переменные и их методы.

private Date sysDttm; 
private String sysPIN; 

public Date getSysDttm() { 
    return sysDttm; 
} 

public void setSysDttm(Date sysDttm) { 
    this.sysDttm = sysDttm; 
} 

public String getSysPIN() { 
    return sysPIN; 
} 

public void setSysPIN(String sysPIN) { 
    this.sysPIN = sysPIN; 
} 

Любые предложения?

Спасибо,

Том

+0

Можем ли мы увидеть '' setSysDttm' и setSysPIN'? –

+0

Вы имеете в виду переменные: private Date sysDttm; private String sysPIN; Или столбцы базы данных? –

+0

Я имею в виду методы Java и соответствующие [аннотации] (http://www.oracle.com/technetwork/middleware/ias/toplink-jpa-annotations-096251.html). –

ответ

0

Этот вопрос был с дескриптором в XML-файле ClerkReviewCaseDocRecipient.ClassDescriptor.xml. У меня не было правильных ссылок, связанных с столбцами sys_dttm и sys_pin. Я нашел это при просмотре конфигурации в TopLink WorkBench. Я ценю все помощь и предложения.

Спасибо, Том