Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2016, 17:09
inazense
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Neodatis. Fallo al acceder a objeto para consultar

Estoy haciendo unos ejercicios básicos para aprender a manejarme en Neodatis con Java y me ha surgido un pequeño problema.

Tengo dos tipos de objetos almacenados en la base de datos. Departamentos y Empleados.
El objeto Departamentos tiene las siguientes propiedades:
private*int*deptNo;
private*String*dnombre;
private*String*loc;

Y la clase Empleados éstas:
private*int*empNo;
private*String*apellido;
private*String*oficio;
private*Empleados*dir;
private*java.sql.Date*fechaAlt;
private*float*salario;
private*float*comisión;
private*Departamentos*dept;

Ambas con sus respectivos getters y setters, claro.

El caso es que ahora quiero listar todos los apellidos de los empleados que trabajen en el departamento 10, pero no tengo muy claro como debo acceder a la propiedad deptNo del Departamento.

El código que he probado es tal que así:

Código Java:
Ver original
  1. ODB odb = ODBFactory.open("primeraBase.db");
  2. System.out.println("Apellidos del departamento 10");
  3. ICriterion criterio = Where.equal("dept.getDeptno()", 10);
  4. CriteriaQuery query = new CriteriaQuery(Empleados.class, criterio);
  5. obEmp = odb.getObjects(query);
  6.  
  7. while(obEmp.hasNext()){
  8.     Empleados empleados = obEmp.next();
  9.     System.out.println(empleados.getApellido());
  10. }

Y al fallar probé con esta cláusula Where también
Código Java:
Ver original
  1. ICriterion criterio = Where.equal("dept.get(deptNo)", 10);

En ambas me tira el siguiente error:
NeoDatisError:1000:Attribute get(deptNo) used in criteria queria does not exist on class informacion.Departamentos

¿Alguna guía de como puedo hacer el Where sobre ese campo?