Estamos utilizando Hibernate Anotaciones 3.4.0GA y Hibernate Core 3.3.2.GA (también conocido como las versiones estables actuales) contra una base de datos Oraclevalor de 0 en Hibernate IndexColumn mapeada con base = 1
Tenemos una uno-a-muchos mapeo con base = 1 que funcionaba bien para un muuuucho tiempo, sin embargo, la semana pasada encontró que algunas entradas de la base de datos en la columna de índice contiene un valor de 0 lo que causó todo tipo de problemas.
Así que mi pregunta es: ¿Alguien sabe de una manera de obtener un valor de 0 en la columna de índice de una relación de uno a muchos, cuando se hace corresponder con una base = 1? Posiblemente relacionado con el uso de genéricos o MappedSuperclass.
cuenta que el código es bastante complejo, porque la herencia está implicado también.
Los siguientes son los elementos pertinentes de las clases:
// SuperClass of the One side
@MappedSuperclass
public abstract class AbstractReihung<Tp, Tw, Te extends AbstractReihungElement<Tp, Tw>>
{
@OneToMany(cascade = CascadeType.ALL)
@Cascade(
{
org.hibernate.annotations.CascadeType.ALL,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN
})
@JoinColumn(name = "parent_id", nullable = false)
@IndexColumn(name = "position", base = 1, nullable = false)
private List<Te> elements = new ArrayList<Te>();
}
// Super Class of the Many side
@MappedSuperclass
public abstract class AbstractReihungElement<Tp, Tw> extends AbstractDbObject
{
@ManyToOne
@JoinColumn(name = "parent_id", insertable = false, updatable = false, nullable = false)
private Tp parent;
@Column(name = "position", insertable = false, updatable = false, nullable = false)
private int position;
}
Las clases reales heredan de estos y proporcionan clases concretas de los parámetros de tipo. Están mapeados como Entidad. También especifican las columnas de identificación y versión, así como toneladas de otros atributos y referencias, pero nada relacionado con el mapeo en cuestión.
Hola Jens, estoy enfrentando el mismo escenario que describiste, ¿al final encontraste cómo ocurre este problema, o encontraste una solución para él? Este es mi código, http: // pastebin. com/V6FRBLMe – fujy
Nunca supe más sobre esto que lo que se describe en esta pregunta y comentarios. –