Buscar..


Parámetros

Anotación Detalles
@OneToOne Especifica una relación uno a uno con un objeto correspondiente.
@OneToMany Especifica un solo objeto que se asigna a muchos objetos.
@ManyToOne Especifica una colección de objetos que se asignan a un solo objeto.
@Entity Especifica un objeto que se asigna a una tabla de base de datos.
@Table Especifica qué tabla de base de datos se asigna también este objeto.
@JoinColumn Especifica en qué columna se almacena una clave foregin.
@JoinTable Especifica una tabla intermedia que almacena claves externas.

Bidireccional de muchos a muchos utilizando el objeto de tabla de combinación administrada por el usuario

@Entity
@Table(name="FOO")
public class Foo {
    private UUID fooId;
    
    @OneToMany(mappedBy = "bar")
    private List<FooBar> bars;
}

@Entity
@Table(name="BAR")
public class Bar {
    private UUID barId;
    
    @OneToMany(mappedBy = "foo")
    private List<FooBar> foos;
}

@Entity
@Table(name="FOO_BAR")
public class FooBar {
    private UUID fooBarId;

    @ManyToOne
    @JoinColumn(name = "fooId")
    private Foo foo;

    @ManyToOne
    @JoinColumn(name = "barId")
    private Bar bar;

    //You can store other objects/fields on this table here.
}

Especifica una relación bidireccional entre muchos objetos Foo y muchos objetos Bar utilizando una tabla de unión intermedia que el usuario administra.

Los objetos Foo se almacenan como filas en una tabla llamada FOO . Los objetos Bar se almacenan como filas en una tabla llamada BAR . Las relaciones entre los objetos Foo y Bar se almacenan en una tabla llamada FOO_BAR . Hay un objeto FooBar como parte de la aplicación.

Se usa comúnmente cuando se desea almacenar información adicional en el objeto de unión, como la fecha en que se creó la relación.

introduzca la descripción de la imagen aquí

Bidireccional Muchos a muchos usando la tabla de unión administrada de Hibernate

@Entity
@Table(name="FOO")
public class Foo {
    private UUID fooId;
    
    @OneToMany
    @JoinTable(name="FOO_BAR",
        joinColumns = @JoinColumn(name="fooId"),
        inverseJoinColumns = @JoinColumn(name="barId"))
    private List<Bar> bars;
}

@Entity
@Table(name="BAR")
public class Bar {
    private UUID barId;
    
    @OneToMany
    @JoinTable(name="FOO_BAR",
        joinColumns = @JoinColumn(name="barId"),
        inverseJoinColumns = @JoinColumn(name="fooId"))
    private List<Foo> foos;
}

Especifica una relación entre muchos objetos Foo y muchos objetos Bar utilizando una tabla de unión intermedia que Hibernate administra.

Los objetos Foo se almacenan como filas en una tabla llamada FOO . Los objetos Bar se almacenan como filas en una tabla llamada BAR . Las relaciones entre los objetos Foo y Bar se almacenan en una tabla llamada FOO_BAR . Sin embargo, esto implica que no hay ningún objeto FooBar como parte de la aplicación.

introduzca la descripción de la imagen aquí

Relación bidireccional de uno a muchos mediante mapeo de clave externa

@Entity
@Table(name="FOO") 
public class Foo {
    private UUID fooId;
    
    @OneToMany(mappedBy = "bar")
    private List<Bar> bars;
}

@Entity
@Table(name="BAR")
public class Bar {
    private UUID barId;
    
    @ManyToOne
    @JoinColumn(name = "fooId")
    private Foo foo;
}

Especifica una relación bidireccional entre un objeto Foo y muchos objetos Bar utilizando una clave externa.

Los objetos Foo se almacenan como filas en una tabla llamada FOO . Los objetos Bar se almacenan como filas en una tabla llamada BAR . La clave externa se almacena en la tabla BAR en una columna llamada fooId .

introduzca la descripción de la imagen aquí

Relación bidireccional uno a uno gestionada por Foo.class

@Entity
@Table(name="FOO")    
public class Foo {
    private UUID fooId;
    
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "barId")
    private Bar bar;
}

@Entity
@Table(name="BAR")
public class Bar {
    private UUID barId;
    
    @OneToOne(mappedBy = "bar")
    private Foo foo;
}

Especifica una relación bidireccional entre un objeto Foo y un objeto Bar utilizando una clave externa.

Los objetos Foo se almacenan como filas en una tabla llamada FOO . Los objetos Bar se almacenan como filas en una tabla llamada BAR . La clave externa se almacena en la tabla FOO en una columna llamada barId .

Tenga en cuenta que el valor mappedBy es el nombre del campo en el objeto, no el nombre de la columna.

introduzca la descripción de la imagen aquí

Relación unidireccional de uno a muchos mediante la tabla de unión administrada por el usuario

@Entity
@Table(name="FOO")
public class Foo {
    private UUID fooId;
    
    @OneToMany
    @JoinTable(name="FOO_BAR",
        joinColumns = @JoinColumn(name="fooId"),
        inverseJoinColumns = @JoinColumn(name="barId", unique=true))
    private List<Bar> bars;
}

@Entity
@Table(name="BAR")
public class Bar {
    private UUID barId;

    //No Mapping specified here.
}

@Entity
@Table(name="FOO_BAR")
public class FooBar {
    private UUID fooBarId;

    @ManyToOne
    @JoinColumn(name = "fooId")
    private Foo foo;

    @ManyToOne
    @JoinColumn(name = "barId", unique = true)
    private Bar bar;

    //You can store other objects/fields on this table here.
}

Especifica una relación unidireccional entre un objeto Foo y muchos objetos Bar utilizando una tabla de unión intermedia que el usuario administra.

Esto es similar a una relación ManyToMany , pero si agrega una restricción unique a la clave externa de destino, puede imponer que es OneToMany .

Los objetos Foo se almacenan como filas en una tabla llamada FOO . Los objetos Bar se almacenan como filas en una tabla llamada BAR . Las relaciones entre los objetos Foo y Bar se almacenan en una tabla llamada FOO_BAR . Hay un objeto FooBar como parte de la aplicación.

Tenga en cuenta que no existe una asignación de objetos Bar objetos Foo . Bar objetos de Bar se pueden manipular libremente sin afectar los objetos de Foo .

Muy comúnmente usado con Spring Security cuando se configura un objeto de User que tiene una lista de Role que pueden realizar. Puede agregar y quitar roles a un usuario sin tener que preocuparse por las cascadas de eliminación de Role 's.

introduzca la descripción de la imagen aquí

Relación unidireccional uno a uno

@Entity
@Table(name="FOO")
public class Foo {
    private UUID fooId;
    
    @OneToOne
    private Bar bar;
}

@Entity
@Table(name="BAR")
public class Bar {
    private UUID barId;
    //No corresponding mapping to Foo.class
}

Especifica una relación unidireccional entre un objeto Foo y un objeto Bar .

Los objetos Foo se almacenan como filas en una tabla llamada FOO . Los objetos Bar se almacenan como filas en una tabla llamada BAR .

Tenga en cuenta que no existe una asignación de objetos Bar objetos Foo . Bar objetos de Bar se pueden manipular libremente sin afectar los objetos de Foo .

introduzca la descripción de la imagen aquí



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow