как исправить "Причина: java.lang.IllegalArgumentException: Object: null не является известным типом сущности."ошибка после 1 часа работы - PullRequest
0 голосов
/ 27 сентября 2019

После 70 минут работы страницы основного итератора, на мой взгляд, Binding обновляет и выдает следующее исключение 'java.lang.IllegalArgumentException: Object: null не является известным типом сущности.'

у меня уже естьпопытался изменить свойство обновления итератора на никогда, и оно все еще обновляется.

вот мой Entity

@Entity
@NamedQueries({ @NamedQuery(name = "Employees.findById", query = "select o from Employees o where o.employeeId = :employeeId")})
public class Employees implements Serializable {
    @Id
    @Column(name = "EMPLOYEE_ID", nullable = false)
    private Integer employeeId;
    private Integer salary;
    public Employees() {
    }

    public Integer getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Integer employeeId) {
        this.employeeId = employeeId;
    }

    public Integer getSalary() {
        return salary;
    }

    public void setSalary(Integer salary) {
        this.salary = salary;
    }

}

, а вот мой сессионный компонент

@Stateless(name = "HrFacade", mappedName = "Hr_EJB_JPA-Model-HrFacade")
public class HrFacadeBean implements HrFacade, HrFacadeLocal {
    @Resource
    SessionContext sessionContext;
    @PersistenceContext(unitName = "Model")
    private EntityManager em;

    public HrFacadeBean() {
    }

    public Employees mergeEmployees(Employees employees) {
        return em.merge(employees);
    }

    public Employees getEmployeeByDepEmpId(Integer employeeId){
        if(employeeId != null){
            return em.createNamedQuery("Employees.findById",Employees.class)
                 .setParameter("employeeId", employeeId)
                 .getResultList().get(0);
        }
        return new Employees();
    }

и вотмоя привязка

<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel" version="12.2.1.16.48" id="view1PageDef"
                Package="oracle.view.pageDefs">
  <parameters/>
  <executables>
    <variableIterator id="variables"/>
    <iterator Binds="root" RangeSize="25" DataControl="HrFacadeBean" id="HrFacadeBeanIterator"/>
    <accessorIterator MasterBinding="HrFacadeBeanIterator" Binds="employeeByDepEmpId" RangeSize="25"
                      DataControl="HrFacadeBean" BeanClass="oracle.model.Employees" id="employeeByDepEmpIdIterator"/>
  </executables>
  <bindings>
    <attributeValues IterBinding="employeeByDepEmpIdIterator" id="employeeId">
      <AttrNames>
        <Item Value="employeeId"/>
      </AttrNames>
    </attributeValues>
    <attributeValues IterBinding="employeeByDepEmpIdIterator" id="salary">
      <AttrNames>
        <Item Value="salary"/>
      </AttrNames>
    </attributeValues>
    <methodAction id="employeesMerge" RequiresUpdateModel="true" Action="invokeMethod" MethodName="mergeEmployees"
                  IsViewObjectMethod="false" DataControl="HrFacadeBean"
                  InstanceName="data.HrFacadeBean.dataProvider"
                  ReturnName="data.HrFacadeBean.methodResults.employeesMerge_mergeEmployees_dataControl_dataProvider_mergeEmployees_result">
      <NamedData NDName="employees" NDValue="#{bindings.employeeByDepEmpIdIterator.currentRow.dataProvider}"
                 NDType="oracle.model.Employees"/>
    </methodAction>
  </bindings>
</pageDefinition>

и вот моя привязка страницы

<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel" version="12.2.1.16.48" id="untitled2PageDef"
                Package="oracle.view.pageDefs">
  <parameters/>
  <executables>
    <variableIterator id="variables"/>
    <taskFlow id="taskflow11" taskFlowId="/WEB-INF/task-flow-1.xml#task-flow-1" activation="conditional"
              xmlns="http://xmlns.oracle.com/adf/controller/binding"
              RefreshCondition="#{pageFlowScope.employeeId ne null}" active="#{pageFlowScope.employeeId eq null}">
      <parameters>
        <parameter id="employeeId" value="1212"/>
      </parameters>
    </taskFlow>
  </executables>
  <bindings/>
</pageDefinition>

я могу объединить свою работу обычно до 1 часа и 10 минут, когда итератор пытается обновить, чтобы пройти через getEmployeeByDepEmpId иэто вызовет исключение, поэтому у кого-нибудь есть идея, почему итератор имеет такое поведение и как его изменить?заранее спасибо.

...