私はJPA + Hibernateでサーブレットを使用しています)。私はこのフォーラムで提案されている他のソリューションを試していない限り、エラーを理解していません。実際には、UserAccount
クラスをエンティティとして格納することは望ましくありません。私はちょうどUtilisateur
クラス(UtilisateurクラスのIdはuseraccountクラスで宣言されています)で宣言したいと思います。継承状態階層で宣言クラスが見つかりません:UserAccount
マイコード:
@Entity
@Table(name = "utilisateur")
public class Utilisateur implements Serializable {
@Id
private UserAccount userAccount;
private Civility civility;
private Address address;
private Contact contact;
@Column(name = "sessions")
private List<String> sessions;
@Column(name = "particularRules")
private boolean particularRules;
public Utilisateur(UserAccount pAccount, Civility pCivility,
Address pAddress, Contact pContact, List<String>
pSessions,
boolean particularRules) {
this.userAccount = pAccount;
this.civility = pCivility;
this.address = pAddress;
this.contact = pContact;
this.sessions = pSessions;
this.particularRules = particularRules;
}
public Civility getCivility() {
return civility;
}
public void setCivility(Civility civility) {
this.civility = civility;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Contact getContact() {
return contact;
}
public void setContact(Contact contact) {
this.contact = contact;
}
public boolean isParticularRules() {
return particularRules;
}
public void setParticularRules(boolean particularRules) {
this.particularRules = particularRules;
}
public UserAccount getUserAccount() {
return userAccount;
}
public void setUserAccount(UserAccount userAccount) {
this.userAccount = userAccount;
}
public List<String> getSessions() {
return sessions;
}
public void setSessions(List<String> sessions) {
this.sessions = sessions;
}
}
@Embeddable
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class UserAccount implements Serializable {
public UserAccount() {
}
public UserAccount(String pId, String pEmail, String pwsd, Date pCreaDate, Date pLastModDate) {
this.identifier = pId;
this.email = pEmail;
this.password = pwsd;
this.creationDate = pCreaDate;
this.lastModificationDate = pLastModDate;
}
@OneToOne(mappedBy = "userAccount", cascade = CascadeType.ALL,
fetch = FetchType.EAGER, orphanRemoval = true, targetEntity =
Utilisateur.class)
private Utilisateur user;
@Column(name = "creationDate")
@Temporal(javax.persistence.TemporalType.DATE)
private Date creationDate;
@Column(name = "lastModificationDate")
@Temporal(javax.persistence.TemporalType.DATE)
private Date lastModificationDate;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "identifier", nullable = false)
private String identifier;
@Column(name = "email")
private String email;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "password", nullable = false)
private String password;
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Date getLastModificationDate() {
return lastModificationDate;
}
public void setLastModificationDate(Date lastModificationDate) {
this.lastModificationDate = lastModificationDate;
}
public Utilisateur getUser() {
return user;
}
public void setUser(Utilisateur user) {
this.user = user;
}
}
あなたはUserAccountクラスを投稿できますか? –
こんにちは、あなたはUserAccountクラスを見ることができませんでしたか? useraccountを保存したくない場合は、メインのメッセージ –
に投稿して、別のフィールドをIDとしてマークし、useraccountの上に一時アノテーションを入れてください。 –