Me llamo @GeneratedValue (strategy = GenerationType.AUTO) para generar la ID en mi entidad.Secuencia de hibernación en Oracle, @GeneratedValue (strategy = GenerationType.AUTO)
Ahora no sé cómo funciona, pero en mi tabla secundaria, genera valores de ID, que siguen la secuencia principal.
//parent table
@Entity
@Table (name = "parent")
public class Parent {
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
@Column (name = "id")
private long id;
@OneToMany (cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@JoinColumn (name = "parentId")
@ForeignKey (name = "FKparent")
private List<child> child;
}
//child table
@Entity
@Table (name = "child")
public class Child {
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
@Column (name = "id")
private long id;
}
Los valores de ID insertados en el elemento primario actualizan la secuencia. Los valores de ID insertados en el elemento secundario actualizan la secuencia. En la siguiente inserción del elemento principal, la secuencia ... usa valores actualizados por inserciones secundarias ...
Estas anotaciones no crean dos secuencias, solo una. ¿Es esto correcto/esperado?
He introducido entidades con mi servicio DAO utilizando sólo entityManager.persist(parent);
No si el usuario final ve que las llaves y se engañados por que ser " asustadizo". Y no me diga que la clave necesita estar oculta para el usuario, eso no siempre es posible ... – Monoman
No hay forma de mantener los identificadores constantes a tiempo y monótonos y sin agujeros en la secuencia, eso no mata escalabilidad. Tampoco he visto una definición útil de 'jumpy' y por qué los usuarios necesitan IDs sin saltos. –