Ir al contenido principal

Ejemplo JPA


Creamos una BD con el siguiente modelo E - R.







O ejecutan los siguientes scripts en su motor de SGBD Sql Server




GO
CREATE TABLE [dbo].[TUsuario](
 [codigo] [varchar](10) PRIMARY KEY,
 [clave] [int] NULL,
 [nombres] [varchar](50) NULL,
 [perfil] [char](2) NULL
)

GO
CREATE TABLE [dbo].[TCliente](
 [codigo] [int] PRIMARY KEY,
 [nombres] [varchar](50) NULL,
 [direccion] [varchar](50) NULL,
 [dni] [char](8) NULL,
 [codigo_usuario] [varchar](10) NULL,
 FOREIGN KEY (codigo_usuario) REFERENCES TUsuario(codigo)
)


Ahora creamos los Entity Class en nuestro proyecto en Netbeans:


@Entity
@Table(name = "TUsuario")
public class CUsuario implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "codigo")
    private String codigo;
    @Column(name = "clave")
    private Integer clave;
    @Column(name = "nombres")
    private String nombres;
    @Column(name = "perfil")
    private String perfil;

    public CUsuario() {
    }

    public CUsuario(String codigo) {
        this.codigo = codigo;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public Integer getClave() {
        return clave;
    }

    public void setClave(Integer clave) {
        this.clave = clave;
    }

    public String getNombres() {
        return nombres;
    }

    public void setNombres(String nombres) {
        this.nombres = nombres;
    }

    public String getPerfil() {
        return perfil;
    }

    public void setPerfil(String perfil) {
        this.perfil = perfil;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codigo != null ? codigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CUsuario)) {
            return false;
        }
        CUsuario other = (CUsuario) object;
        if ((this.codigo == null && other.codigo != null) || (this.codigo != null && !this.codigo.equals(other.codigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "edu.sise.persistente.TUsuario[ codigo=" + codigo + " ]";
    }    
}




@Entity
@Table(name = "TCliente")
public class CCliente implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "codigo")
    private Integer codigo;
    @Column(name = "nombres")
    private String nombres;
    @Column(name = "direccion")
    private String direccion;
    @Column(name = "dni")
    private String dni;
    @JoinColumn(name = "codigo_usuario", referencedColumnName = "codigo")
    @ManyToOne
    private CUsuario codigoUsuario;

    public CCliente() {
    }

    public CCliente(Integer codigo) {
        this.codigo = codigo;
    }

    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    public String getNombres() {
        return nombres;
    }

    public void setNombres(String nombres) {
        this.nombres = nombres;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }

    public CUsuario getCodigoUsuario() {
        return codigoUsuario;
    }

    public void setCodigoUsuario(CUsuario codigoUsuario) {
        this.codigoUsuario = codigoUsuario;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codigo != null ? codigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CCliente)) {
            return false;
        }
        CCliente other = (CCliente) object;
        if ((this.codigo == null && other.codigo != null) || (this.codigo != null && !this.codigo.equals(other.codigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "edu.sise.persistente.entities.TCliente[ codigo=" + codigo + " ]";
    }
    
}







Comentarios

Entradas populares de este blog

Estructura y distribución del IDE Eclipse (ADT)

Entenderemos como esta estructurado y organizado eclipse (ADT es una distribución de eclipse), y asi no complicarnos en nuestro desarrollo en saber donde encontrar algo, dado que muchos desarrolladores quizá es su primera experiencia con eclipse. Esta explicación aplica para cualquier IDE Eclipse dado que todos se rigen bajo el mismo paradigma. Desarrollo 1. Workspace, eclipse trabaja los proyectos dentro de un Workspace (espacio de trabajo) que es la ruta de una carpeta física en disco sale para escoger la ruta al abrir el eclipse, recomiendo no enrutar a una carpeta que este en una memoria USB porque a veces se corrompe y es lento compilando 2. Estructura del IDE , tiene 4 regiones importantes ubicadas en la forma como se muestra la imagen, ademas hay otras dos secciones encerradas de color Rojo una ya conocida como menus y herramientas y la otra como perspectivas <1> Es la vista de proyectos, los puedes ver agrupados como proyecto, como estructura de carpetas, etc.

Crear aplicación móvil J2ME desde cero con NetBeans

Todos los ejemplos hechos en este blog son para emuladores o dispositivos que soporten configuración CLCD-1.1 y perfil MIDP-2.0 hacia adelante y los ejemplos serán desarrollados en el IDE Netbeans. 1. INTRODUCCIÓN Veremos como crear una aplicación móvil J2ME en NetBeans, esto sera indiferente de la versión NetBeans que estes usando; el proceso es similar en todas las versiones (6.x, 7.x, etc.). Aprenderemos a crear proyectos, paquetes, Midlets y clases.

APK, Proceso de empaquetado y desempaquetado (compilación e instalación de un APK en un dispositivo Android)

El archivo ejecutable o paquete de instalación de una aplicación Android tiene una extensión . APK , esta es un empaquetado (conjunto de archivos compilados y recursos dentro de un espacio de nombre o paquete) que se crea cuando compilamos un proyecto Android. Asimismo cuando este .APK se instala en un dispositivo Android; lo que hace el sistema operativo Android es desempaquetar este . APK y crear una estructura con ese nombre de espacio o paquete; este es creado dentro de su directorio de aplicaciones en el sistema de archivos del dispositivo. Notas Adicionales - Por eso el nombre del Package Name de una aplicación debe ser único, haciendo la comparación con una estructura de carpetas no podemos tener 2 nombres de carpetas iguales en una ruta X. - Para los que no recuerdan cual es el package name de su proyecto este es creado al inicio del proyecto, pero también lo pueden encontrar en el Manifest.xml