I'm currently trying to setup a database – using Java only. Given this simple class that might appear in the average social network app:
@Entity
class User {
@Id
private String email;
private String name;
private String otherInfo;
@ManyToMany
private List<User> contacts;
}
When the user logs in, he should receive the basic information and the list of contacts with their basic info, but not their contacts. To reduce the amount of boiler-plate code, I want to use a standard solution like Gson. However, even with lazy fetch the whole user is loaded on gson.toJson(user)
.
Therefore I thought of extracting the basic infos into a base class BasicUser
and changing the contacts
to List<BasicUser>
. Now I only need to somehow circumwent the discriminator column when I fetch the contacts – of course they are all saved as complete users on the server. Unfortunately, I don't know how to archieve that. Any ideas?