I'm relearning Java, Springboot in a personal project. I have an entity named User
, which is managed via the autogenerated scaffolding from jHipster
. I also have a UserProfile
which is an entity that I created to hold extra data (since I didn't want to muck around with the User
object. Now, when I expose REST endpoints for UserProfile
, I want the GET calls to include the user_id
as part of the JSON, and the PUT/POST calls to accept user_id
for the UserProfile
, do the association and only then persist. The ORM being used is Hibernate/JPA. What Jackson annotations should I use to make this happen?
My User
object is:
public class User {
@ToString.Exclude
@OneToOne(mappedBy = "user", orphanRemoval = true, fetch = FetchType.LAZY)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@JsonIgnore
private UserProfile userProfile;
}
and my UserProfile
class is:
public class UserProfile {
@ToString.Exclude
@ApiModelProperty(value = "Linking the UserProfile to the base User object that is used for authentication")
@OneToOne(optional = false)
// Note: Not marking with 'NotNull' annotation since we will not want to update the User object when upserting the UerProfile
@JoinColumn(unique = true, nullable = false, insertable = true, updatable = false)
@JsonIgnoreProperties("userProfile")
private User user;
}
My versions are: spring_boot_version=2.0.8.RELEASE hibernate_version=5.2.17.Final