ici je suis encore dans mon auto-apprentissage hibernate et projet d'expérience personnelle pour acquérir plus de compréhension. Voici la description de mon environnement: J'ai une super entité de modèle dont tout mon modèle hérite from.it a seulement la propriété id J'utilise le modèle genericDAO trouvé sur le site web d'hibernation. Maintenant, mon problème est que j'utilise la liste au lieu de définir pour mon mappage un à plusieurs (il n'est pas nécessaire d'éviter la duplication ici) et quand je référence l'ID super-entité dans l'index de liste ou la propriété list-index org.hibernate.NonUniqueObjectException: un autre objet avec la même valeur d'identifiant a déjà été associé à la session ici est l'interface super entitécartographie de la collection hibernate avec la liste et la classe de super entité
public interface Model extends Serializable {
public Long getId();
public void setId(Long id);
}
//here is its implementation.they are not in the same physical file
public abstract class ModelImpl implements Model {
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
ici est son fichier de mappage
<class abstract="true" name="ModelImpl">
<!--i removed doctype and stuffs-->
<id name="id">
<generator class="assigned"/>
</id>
</class>
ici est sur l'interface POJO c'est mon parent
public interface Message extends Model {
Date getDateSent();
String getGlobalStatus();
} // sa mise en œuvre est ici, mais sur différents fichier physique MessageImpl public class étend ModelImpl implémente un message {private String globalStatus; private Réponses listées = new ArrayList(); privé Date dateSent; // setters et getters .... }
son fichier de mappage est comme ceci:
<union-subclass extends="ModelImpl" name="MessageImpl">
<property name="globalStatus"/>
<property name="dateSent" type="timestamp"/>
</set> ->
J'ai commenté l'ensemble parce qu'il a été donné une erreur de casting qui me fait réaliser mon e rror de sorte que la classe Response qui est le parent est ici:
public interface Response extends Model {
String getGatewayMessageId();
Message getMessageId();
}
//its implementation but in different physical file
public class ResponseImpl extends ModelImpl implements Response{
private static final long serialVersionUID = 1L;
private Message messageId;
private String gatewayMessageId;
//setters and getters..
}
de sorte que est essentiellement that.now lors de mon test lorsque je tente de sauver un message avec ses enfants, il jette ceci:
org .hibernate.NonUniqueObjectException: un autre objet avec la même valeur d'identifiant a déjà été associé à la session
je peux faire toutes les méthodes PERSISTANTS exception celui que je viens de parler. Je suis un peu perdu ici parce que tous héritent ID du modèle alors qu'est-ce que je fais mal? merci pour la lecture. Je ne comprends pas vraiment le problème ici.
essayez-vous d'enregistrer une entité avec un identifiant déjà utilisé par une autre entité? –