private static void addRepartoWithChofer(Schema schema) {
    Entity reparto = schema.addEntity("Reparto");
    reparto.addIdProperty();
    reparto.addStringProperty("codigo").notNull();
    reparto.addDateProperty("date");

    Entity chofer = schema.addEntity("Chofer");
    chofer.addIdProperty();
    chofer.addStringProperty("nombre").notNull();

    // Relaciones
    // Un Reparto tiene un Chofer : Relacion toOne 1:1

    // Creo una foreign key para luego agregar a la tabla reparto
    Property idChofer = reparto.addLongProperty("idChofer").notNull().getProperty();

    // agrego a reparto la relacion toOne que saca el id de chofer y lo agrega como foreign key
    // en la tabla reparto como choferId
    reparto.addToOne(chofer, idChofer);

    // La linea anterior permite trabajar directamente en un Reparto con su respectivo Chofer
    // con un getChofer/setChofer creados por greenDao

    // Un Chofer tiene muchos Repartos: Relacion toMany 1:N
    // To-many relations are modeled like to-one relations,
    // except that the foreign key is placed in the destination table.
    ToMany repartosDeUnChofer = chofer.addToMany(reparto, idChofer);
    repartosDeUnChofer.setName("repartos");

    // Entonces ahora podemos llamar a chofer.getRepartos()
    // que nos retornara la lista de repartos del chofer
  }
Example #2
0
  public static Entity createParishEntity(Schema schema, Entity subcounty) {
    Entity parish = schema.addEntity("Parish");
    parish.addStringProperty("uuid").notNull().unique().primaryKey();
    parish.addStringProperty("name").notNull();

    Property subcountyId = parish.addStringProperty("subCountyId").notNull().getProperty();
    ToMany subcountyToParishes = subcounty.addToMany(parish, subcountyId);
    subcountyToParishes.setName("parishes");

    parish.addToOne(subcounty, subcountyId);

    return parish;
  }
  private static void addCustomerOrder(Schema schema) {
    Entity customer = schema.addEntity("Customer");
    customer.addIdProperty();
    customer.addStringProperty("name").notNull();

    Entity order = schema.addEntity("Order");
    order.setTableName("ORDERS"); // "ORDER" is a reserved keyword
    order.addIdProperty();
    Property orderDate = order.addDateProperty("date").getProperty();
    Property customerId = order.addLongProperty("customerId").notNull().getProperty();
    order.addToOne(customer, customerId);

    ToMany customerToOrders = customer.addToMany(order, customerId);
    customerToOrders.setName("orders");
    customerToOrders.orderAsc(orderDate);
  }
Example #4
0
  public static Entity createProductEntity(Schema schema, Entity group) {
    Entity product = schema.addEntity("Product");

    product.addStringProperty("uuid").notNull().unique().primaryKey();
    product.addStringProperty("name").notNull();
    product.addStringProperty("unitOfMeasure");
    product.addStringProperty("formulation");
    product.addStringProperty("unitPrice");
    product.addStringProperty("groupName");

    Property groupId = product.addStringProperty("groupId").notNull().getProperty();
    ToMany groupToProducts = group.addToMany(product, groupId);
    groupToProducts.setName("products");

    product.addToOne(group, groupId);

    return product;
  }
  private static void addTable(Schema schema) {

    // Tabla 1. Valoraciones
    // Ver pojoValoraciones ->> ResultValoraciones
    Entity valoraciones = schema.addEntity("Valoraciones");

    valoraciones.addIdProperty();
    valoraciones.addStringProperty("objectId");
    valoraciones.addStringProperty("updateAt"); // ¿Hace falta updateAt en todas las tablas?
    valoraciones.addStringProperty("valoracion");

    // Tabla 2. Sitios
    // Ver Sitios ->> Result
    Entity sitios = schema.addEntity("Sitios");

    sitios.addIdProperty();
    sitios.addStringProperty("objectId");
    sitios.addStringProperty("updateAt");
    sitios.addStringProperty("nombre");
    sitios.addStringProperty("categoria");
    sitios.addStringProperty("direccion");
    sitios.addStringProperty("tlf");
    sitios.addStringProperty("descripcion");
    sitios.addStringProperty("fotoUrl");
    sitios.addStringProperty("latitud");
    sitios.addStringProperty("longitud");

    // Tabla 3. Usuarios
    // Ver Login
    Entity usuarios = schema.addEntity("Usuarios");

    usuarios.addIdProperty();
    usuarios.addStringProperty("objectId");
    usuarios.addStringProperty("updateAt");
    usuarios.addStringProperty("sessionToken");
    usuarios.addStringProperty("user");
    usuarios.addStringProperty("nombre");
    usuarios.addStringProperty("email");
    usuarios.addStringProperty("fotoUrl");

    // Tabla 4. Comentarios
    // Ver Comentario ->> Result
    Entity comentarios = schema.addEntity("Comentarios");

    comentarios.addIdProperty();
    comentarios.addStringProperty("objectId");
    comentarios.addStringProperty("updateAt");
    comentarios.addStringProperty("comentario");

    // Relación Sitio - Comentarios
    // Un Sitio tendrá varios Comentarios (1:N) y un
    // Comentario sólo puede pertenecer a un Sitio (1:1).

    Property idSitioC = comentarios.addLongProperty("idSitioC").notNull().getProperty();
    comentarios.addToOne(
        sitios, idSitioC); // La tabla comentarios tiene como clave foránea el idSitioC de sitios

    ToMany comentariosDeUnSitio = sitios.addToMany(comentarios, idSitioC);
    comentariosDeUnSitio.setName("comentariosDeUnSitio");
    comentariosDeUnSitio.orderAsc(idSitioC);

    // Relación Usuario - Comentarios
    // Un Usuario podrá hacer varios Comentarios (1:N) y un
    // Comentario sólo puede pertenecer a un Usuario (1:1).

    Property idUsuarioC = comentarios.addLongProperty("idUsuarioC").notNull().getProperty();
    comentarios.addToOne(
        usuarios,
        idUsuarioC); // La tabla comentarios tiene como clave foránea el idUsuarioC de usuarios

    ToMany comentariosDeUnUsuario = usuarios.addToMany(comentarios, idUsuarioC);
    comentariosDeUnUsuario.setName("comentariosDeUnUsuario");
    comentariosDeUnUsuario.orderAsc(idUsuarioC);

    // Relación Valoraciones - Usuario
    // Un Usuario podrá hacer varias Valoraciones (1:N) y una
    // Valoración sólo puede pertenecer a un Usuario (1:1).

    Property idUsuarioV = valoraciones.addLongProperty("idUsuarioV").notNull().getProperty();
    valoraciones.addToOne(
        usuarios,
        idUsuarioV); // La tabla comentarios tiene como clave foránea el idUsuarioV de usuarios

    ToMany valoracionesDeUnUsuario = usuarios.addToMany(valoraciones, idUsuarioV);
    valoracionesDeUnUsuario.setName("valoracionesDeUnUsuario");
    valoracionesDeUnUsuario.orderAsc(idUsuarioV);

    // Relación Valoraciones - Sitio
    // Un Sitio podrá hacer tener varias Valoraciones (1:N) y una
    // Valoración sólo puede pertenecer a un Sitio (1:1).

    Property idSitioV = valoraciones.addLongProperty("idSitioV").notNull().getProperty();
    valoraciones.addToOne(
        sitios, idSitioV); // La tabla comentarios tiene como clave foránea el idSitioV de sitios

    ToMany valoracionesDeUnSitio = usuarios.addToMany(valoraciones, idSitioV);
    valoracionesDeUnSitio.setName("valoracionesDeUnSitio");
    valoracionesDeUnSitio.orderAsc(idSitioV);
  }