Closed francisyuya closed 8 years ago
This is not a jhipster issue, you have modified the code that we generated and hence you should ask this in stack overflow with a jhipster tag.
"orphanRemoval": true can not apply to entity relation? how to ?
@jdubois @deepu105
Hi. I have create a project with jhipster. I added some entities. in my database schema, I have a relationship between the entities "user" (default jhi_user entitie generate by jhipster) and "activity field" (user has a field of activity).
This is a summary of my user entitie :
/**
A user. */ @Entity @Table(name = "jhi_user") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @Document(indexName = "user") public class User extends AbstractAuditingEntity implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id;
@NotNull @Pattern(regexp = "^[a-z0-9]*$|(anonymousUser)") @Size(min = 1, max = 50) @Column(length = 50, unique = true, nullable = false) private String login;
@JsonIgnore @NotNull @Size(min = 60, max = 60) @Column(name = "password_hash",length = 60) private String password;
@Size(max = 50) @Column(name = "first_name", length = 50) private String firstName;
@Size(max = 50) @Column(name = "last_name", length = 50) private String lastName;
@Email @Size(max = 100) @Column(length = 100, unique = true) private String email;
@Column(nullable = false) private boolean activated = false;
@Size(min = 2, max = 5) @Column(name = "lang_key", length = 5) private String langKey;
@Size(max = 20) @Column(name = "activation_key", length = 20) @JsonIgnore private String activationKey;
@Size(max = 20) @Column(name = "reset_key", length = 20) private String resetKey;
@Column(name = "reset_date", nullable = true) private ZonedDateTime resetDate = null;
@JsonIgnore @ManyToMany @JoinTable( name = "jhi_user_authority", joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name")}) @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) private Set authorities = new HashSet<>();
@JsonIgnore @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "user") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) private Set persistentTokens = new HashSet<>();
// le domaine d'activité de l'utilisateur (clé étrangère vers la table AssetCatInfo) //@ManyToOne(fetch=FetchType.LAZY) @JsonIgnore @ManyToOne @JoinColumn(name = "activity_field_info_id") private ActivityFieldInfo activityFieldInfo;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getLogin() { return login; }
public void setLogin(String login) { this.login = login; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public String getFirstName() { return firstName; }
public void setFirstName(String firstName) { this.firstName = firstName; }
public String getLastName() { return lastName; }
public void setLastName(String lastName) { this.lastName = lastName; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public boolean getActivated() { return activated; }
public void setActivated(boolean activated) { this.activated = activated; }
public String getActivationKey() { return activationKey; }
public void setActivationKey(String activationKey) { this.activationKey = activationKey; }
public String getResetKey() { return resetKey; }
public void setResetKey(String resetKey) { this.resetKey = resetKey; }
public ZonedDateTime getResetDate() { return resetDate; }
public void setResetDate(ZonedDateTime resetDate) { this.resetDate = resetDate; }
public String getLangKey() { return langKey; }
public void setLangKey(String langKey) { this.langKey = langKey; }
public Set getAuthorities() {
return authorities;
}
public void setAuthorities(Set authorities) {
this.authorities = authorities;
}
public Set getPersistentTokens() {
return persistentTokens;
}
public void setPersistentTokens(Set persistentTokens) {
this.persistentTokens = persistentTokens;
}
public ActivityFieldInfo getActivityFieldInfo() { return activityFieldInfo; }
public void setActivityFieldInfo(ActivityFieldInfo activityFieldInfo) { this.activityFieldInfo = activityFieldInfo; }
@Override public int hashCode() { return login.hashCode(); }
}
This a summary of my activity field entitie ;
@Entity @Table(name = "activity_field_info") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @Document(indexName = "activityfieldinfo") public class ActivityFieldInfo implements Serializable {
}
And that is my initial_schema liquibase for user entitie :