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); }
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); }