Preguntas Verdadero/Falso y múltiple opción Pregunta 1 Un servidor Java EE proporciona: Seleccione una: a. Sólo Contenedor Web b. Contenedor de EJBs y Contenedor Web c. Ninguna de las anteriores d. Sólo Contenedor de EJBs Pregunta 2 La capa encargada de mostrar la interfaz al usuario es Seleccione una: a. La capa de acceso a datos b. La capa de negocios c. La capa de presentación Pregunta 3 Un servidor de aplicaciones que sea Java EE certificado, deberá proveer los servicios que define la especificación Java EE Seleccione una: Verdadero Falso Pregunta 4 WildFly no es un servidor de aplicaciones Java EE Seleccione una: Verdadero Falso Pregunta 5 Se necesita implementar un componente de negocios que permita modificar cierta entidad. Qué tipo de EJB voy a necesitar? Seleccione una: a. Un session bean singleton b. Un session bean con estado c. Un session bean sin estado d. Un message driven bean Pregunta 6 Se necesita implementar un componente de negocios EJB que sea capaz de registrar las compras de un usuarios. Qué tipo de EJB necesitaré? Seleccione una: a. Un session bean con estado b. Un session bean singleton c. Un session bean sin estado d. Un message driven bean Pregunta 7 Se necesita implementar un componente de negocios que permita procesar mensajes en forma asíncrona. Qué tipo de EJB voy a necesitar? Seleccione una: a. Un session bean sin estado b. Un session bean con estado c. Un message driven bean d. Un session bean singleton Pregunta 8 Se necesita implementar un componente de negocios que permita almacenar datos comunes a todos los usuarios de una aplicación. Qué tipo de EJB voy a necesitar? Seleccione una: a. Un session bean singleton b. Un session bean sin estado c. Un session bean con estado d. Un message driven bean Pregunta 9 Se quiere implementar un componente de negocios EJB que permita obtener todos los productos de un supermercado. Qué trozo de código es el más indicado? Seleccione una: a. @Singleton public class ProductosBean { public List<Producto> obtenerProductos(){ .... } } b. @Stateful public class ProductosBean { public List<Producto> obtenerProductos(){ .... } } c. @Stateless public class ProductosBean { public List<Producto> obtenerProductos(){ .... } } Pregunta 10 Quiero construir un EJB que permite sólo el acceso local, que opción u opciones son correctas? Seleccione una o más de una: a. Ninguna de las anteriores es correcta b. Anotar la interfaz de negocio como @Local: @Local public interface MyBeanLocal { ... } c. Crear una clase de implementación de EJB: @LocalBean public class MyBean {...} d. Especificar la interfaz mediante la anotación @Local y el nombre de la interfaz: @Local(MyBeanInterfaz. class) public class MyBean implements MyBeanInterfaz{ ... } Pregunta 11 Que anotación debo agregarle a la implementación de un EJB para indicar que no se va a acceder de forma remota Seleccione una: a. @Stateless b. @Remote c. @Local d. @LocalBean Pregunta 12 Dada la siguiente definición de la entidad: @Entity @Table(name = "PRODUCTOS") public class Producto{ ... } Cuál será el nombre de la tabla en la base de datos correspondiente a esta entidad? a. b. c. d. PRODUCTO Producto PRODUCTOS productos Pregunta 13 Dada la siguiente entidad: @Entity public class Producto{ @Id @GeneratedValue private Long id; private String codigo; ... } Si quiero que el nombre sea obligatorio en la entidad, debo anotar el atributo de la siguiente manera: Seleccione una: a. @Column(optional=false) b. @NotNullable c. @Column(nullable=false) Pregunta 14 Si quiero que un campo de una entidad no sea almacenado en la base de datos, debo: Seleccione una: a. Anotar el atributo como @Transient b. No existe manera de configurarlo c. No ponerle ninguna anotación al atributo Pregunta 15 Si defino un atributo de una entidad de la siguiente manera: @Enumerated private Categoria producto; donde public enum Categoria { PERECEDERO, NO_PERECEDERO } De que tipo de dato queda definida la columna estado? Seleccione una: a. Tipo String conteniendo los valores: PERECEDERO, NO_PERECEDERO b. Tipo Numérico conteniendo los valores: 0, 1 Pregunta 16 Dado el siguiente trozo de código: @Entity public class Supermercado implements Serializable { private List<Producto> productos; … } Y sabiendo que un supermercado una lista de productos, y que un producto no puede estar en más de un supermercado a la vez: qué relación definiría para Producto? Seleccione una: a. @OneToMany b. @ManyToMany c. @OneToOne d. @ManyToOne Pregunta 17 Dado el siguiente trozo de código: (Siendo Empleado una entidad y em el EntityManager) Empleado empleado= new Empleado (); empleado.setNombre("Juan"); em.persist(empleado); empleado.setNombre("Maria"); Con qué nombre se graba el empleado? Seleccione una: a. Da error, no puedo setear atributos luego de persistir la entidad b. Juan c. Maria Pregunta 18 Dado el siguiente trozo de código (Siendo empleado una entidad y em el EntityManager) Empleado empleado= new Empleado (); empleado.setNombre("Juan"); em.persist(empleado); empleado.setNombre("Maria"); em.refresh(empleado); Con que valor termina el nombre del empleado ? Seleccione una: a. Maria b. Juan c. Da error, no puedo hacer un refresh luego de un persist Pregunta 19 Dado el siguiente trozo de código: (Siendo Empleado una entidad y em el EntityManager) Empleado empleado= new Empleado (); empleado.setNombre("Juan"); em.persist(empleado); empleado.setNombre("Maria"); em.detach(empleado); empleado.setNombre("Jose"); em.merge(empleado); Con que valor termina el nombre del Empleado ? Seleccione una: a. Ninguno de los anteriores b. Juan c. Maria d. Jose Pregunta 20 Dado el siguiente trozo de código: (Siendo Empleado una entidad y em el EntityManager) Empleado empleado= em.find(Empleado .Class, 1); em.remove(empleado); empleado.setNombre("Juan"); Qué termina pasando con el empleado? Seleccione una: a. El empleado 1 se borra de la base de datos. b. El código anterior da error porque no puedo hacer set de una entidad removida c. El empleado 1 se borra de la base de datos y luego se vuelve a agregar en la misma cuando se hace el set del nombre. Pregunta 21 El método flush() sirve para forzar la sincronización con la base de datos Seleccione una: Verdadero Falso Pregunta 22 Tengo un entity llamado Empleado donde tengo definido: @NamedQuery ( name = "Empleado.obtenerPorEdad", query = "SELECT e FROM Empleado e WHERE e.edad = :edad" )La forma correcta de ejecutar esta query es: Seleccione una: a. em.createNativeQuery("Empleado.obtenerPorEdad").setParameter("edad", 20).getResultList(); b. em.createQuery("Empleado.obtenerPorEdad").setParameter("edad", 20).getResultList(); c. em.createNamedQuery("Empleado.obtenerPorEdad").setParameter("edad", 20).getResultList(); Ejercicio Práctico 1 Se tiene la siguiente realidad: Una empresa de venta de celulares quiere llevar registro los celulares comprados. De cada celular interesa guardar: numero (obligatorio), compañía (ANTEL, Claro o Movistar), peso y cliente que lo compró. Del cliente interesa su nombre, ci (obligatorio), mail. Un celular puede tener un solo cliente que lo compró, y cada cliente puede haber comprado muchos celulares. Se pide implementar las entidades, atributos y relaciones necesarias para esta realidad, con las anotaciones correspondientes. Entregar archivo .rar con las entidades Celular y Cliente Ejercicio Práctico 2 Para la realidad anterior, se quiere crear un enterprise java bean que permita: - crear un cliente dado su nombre, ci, mail. - crear un celular dado su numero, compañía y peso, y el identificador del cliente que lo compró. - eliminar un cliente dado el identificador del mismo - obtener todos los cliente - obtener todos las celulares de un cliente dada la ci del cliente Este EJB no se va a acceder por fuera del servidor Java EE (tener esto en cuenta a la hora de elegir el tipo de acceso). Entregar el EJB implementado.