Вы определенно не должны создавать сущность User_Group, так как это больше базовое представление базы данных, чем объектно-ориентированное.
Вы можете достичь таблицы объединения, определив что-то вроде:
@Entity
@Table(name="USERS", schema="ADMIN")
public class User implements Serializable {
//...
@ManyToOne
@JoinTable(name="USER_GROUP")
Group group;
@Entity
@Table(name="GROUPS", schema="ADMIN")
public class Group implements Serializable {
//...
@OneToMany(mappedBy="group")
Set<User> users;
Редактировать: Если вы хотите явно задать имена столбцов, вы можете использовать элементы @JoinColumn, как показано ниже:
@ManyToOne
@JoinTable(name="USER_GROUP",
joinColumns = @JoinColumn(name = "userid",
referencedColumnName = "userid"),
inverseJoinColumns = @JoinColumn(name = "groupid",
referencedColumnName = "groupid"))
Group group;