JPA Seriendruck-Ergebnisse in doppelter Eintrag von ausländischen Unternehmen

FRAGEN:

Weiß jemand, wie man Zusammenführen, ohne EntityManager versuchen Sie zu re-legen Sie die ausländische Person?

SZENARIO:

Nur um ein Szenario, das am ehesten mein Fall: ich habe zwei Entitäten

@Entity
@Table(name = "login", catalog = "friends", uniqueConstraints =
@UniqueConstraint(columnNames = "username"))
public class Login implements java.io.Serializable{

   private static final long serialVersionUID = 1L;
   @Id
   @GeneratedValue(strategy = IDENTITY)
   @Column(name = "id", unique = true, nullable = false)
   private Integer id;
   @Column(name = "username", unique = true, nullable = false, length = 50)
   private String username;
   @Column(name = "password", nullable = false, length = 250)
   private String password;
}

@Entity
@Table(name = "friendshiptype", catalog = "friends")
public class FriendshipType implements java.io.Serializable{

   private static final long serialVersionUID = 1L;
   @Id
   @GeneratedValue(strategy = IDENTITY)
   @Column(name = "id", unique = true, nullable = false)
   private Integer id;
   @OneToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "username")
   private Login login;
      @Column(name = "type", unique = true, length = 32)
   private String type;
   ...//other fields go here
}

Sowohl die Login Unternehmen und die FriendshipType Entität gespeichert werden, um die Datenbank getrennt. Dann, später, ich brauche, um Seriendruck eine Login Zeile mit einem FriendshipType Zeile. Wenn ich Anrufe entityManager.merge(friendship) es versucht, legen Sie einen neuen Login was natürlich die Ergebnisse in der folgenden Fehlermeldung

Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'myUserName1350319637687' for key 'username'
Error Code: 1062
Call: INSERT INTO friends.login (password, username) VALUES (?, ?)

Meine Frage, ist: wie führe ich zwei Objekte ohne enityManager versucht, wieder das fremde Objekt?

  • Dies hat wohl nichts zu tun mit dem Problem, aber sollte es nicht sein, @JoinColumn(name = "id"). Alle Beispiele, die ich gesehen habe, join über die id-Eigenschaft.
  • Simone ich versuchen deinen Vorschlag, aber keine Veränderung.
  • OK - danke für das lassen mich wissen. Hoffe du bekommst bessere Antworten.
InformationsquelleAutor kasavbere | 2012-10-15
Schreibe einen Kommentar