I've done the necessary changes to my models outlined here. However, I don't know what to put on my join table entity.
Note that my join table has a surrogate key , and two extra columns (date and varchar).
What I've got so far is:
User.java
@Entity
@Table (name = "tbl_bo_gui_user")
@DynamicInsert
@DynamicUpdate
public class User implements Serializable {
    private String id;
    private String ntName;
    private String email; 
    private Set<GroupUser> groupUsers = new HashSet<GroupUser>(0);
    // Constructors and some getters setters omitted
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.user", cascade=CascadeType.ALL)
    public Set<GroupUser> getGroupUsers() {
        return groupUsers;
    }
    public void setGroupUsers(Set<GroupUser> groupUsers) {
        this.groupUsers = groupUsers;
    }
}
Group.java
@Entity
@Table (name = "tbl_bo_gui_group")
@DynamicInsert
@DynamicUpdate
public class Group implements Serializable {
    private String id;
    private String groupName;
    private String groupDesc;
    private Set<GroupUser> groupUsers = new HashSet<GroupUser>(0);
    // Constructors and some getters setters omitted
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.group", cascade=CascadeType.ALL)
    public Set<GroupUser> getGroupUsers() {
        return groupUsers;
    }
    public void setGroupUsers(Set<GroupUser> groupUsers) {
        this.groupUsers = groupUsers;
    }
}
The problem is that I don't know what to put on my join table entity. Here it is.
GroupUser.java
@Entity
@Table (name = "tbl_bo_gui_group_user")
@DynamicInsert
@DynamicUpdate
@AssociationOverrides({
    @AssociationOverride(name = "pk.user", 
            joinColumns = @JoinColumn(name = "id")),
    @AssociationOverride(name = "pk.group", 
            joinColumns = @JoinColumn(name = "id")) })
public class GroupUser implements Serializable {
    private String id;
    private User userId;
    private Group groupId;
    private Date dateCreated;
    private String createdBy;
    // constructors and getters and setters for each property
    // What now? ? No idea
}
 
     
    