Tengo un buen problema. Retomaré el contexto.JPA Cómo agregar un único contraint en la columna para la relación @OneToMany como en el nombre de usuario
Tengo una clase: Site
que representan un sitio web, y una clase User
.
Un sitio puede tener varios usuarios.
class Site {
private int site_ID;
@OneToMany // with a join table
private List<User> users;
// ...
}
class User {
private int user_ID;
private String name;
private String lastname;
private String username;
private String password;
}
Quiero permitir que el mismo nombre de usuario exista en todos los sitios, pero solo uno por sitio.
Site/User/username
1 /1 /username1
1 /2 /username2
2 /3 /username1
¿Cómo puedo hacer eso?
gracias
El PO dijo que quería utilizar una tabla de unión para su OneToMany. Además, incluso si quisiera una clave externa, su restricción única no es útil ya que id ya es única (lo que garantiza que id/site siempre será) –
@JB Nizet: a) seguro, cree que una tabla de unión es la correcta qué hacer, pero sugiero no usar uno (no parece tener ningún sentido en este caso) b) ese fue mi error, quise decir nombre de usuario, no user_id (fijo) –
Thks, voy a intentarlo esta noche. Entonces, si quiero hacer eso, ¿debo mantener una referencia al Sitio en mi objeto Usuario? Al principio, quería mantener a los niños que no sabían que sus padres, sé que soy una mala persona. –