Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] Duplicate column name with @Embedded and @AttributeOverrides

Hi,

I have a strange problem with @Embedded and @AttributeOverrides resulting in
"duplicate column name" SQL error. It's similar to
https://bugs.eclipse.org/bugs/show_bug.cgi?id=328307.

Embeddable class:

@Embeddable
public class RegistrationStatus {
  public enum Status { ... }

  private Integer id;

  @Enumerated
  private Status status;
}

Domain classes:

@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Entity
public class Device {
  ...
  @Embedded
  @AttributeOverrides({
      @AttributeOverride(name="status",
column=@Column(name="jbackup_status")),
      @AttributeOverride(name="id", column=@Column(name="jbackup_id"))
  })
  protected RegistrationStatus jbackupStatus = RegistrationStatus.UNKNOWN;
  ...
}

@Entity
public class Linux extends Device {
  ...
  @Embedded
  @AttributeOverrides({
      @AttributeOverride(name="status",
column=@Column(name="puppet_status")),
      @AttributeOverride(name="id", column=@Column(name="puppet_id"))
  })
  private RegistrationStatus puppetStatus = RegistrationStatus.UNKNOWN;

  @Embedded
  @AttributeOverrides({
      @AttributeOverride(name="status",
column=@Column(name="spacewalk_status")),
      @AttributeOverride(name="id", column=@Column(name="spacewalk_id"))
  })
  private RegistrationStatus spacewalkStatus = RegistrationStatus.UNKNOWN;
  ...
}

Sometimes, mapping gets mixed up or something and with em.merge(Linux), I'm
getting:

>>Duplicate column name "SPACEWALK_ID"; SQL statement:
>>UPDATE device SET spacewalk_id = ?, spacewalk_status = ?, spacewalk_id =
?, spacewalk_status = ?, spacewalk_id = ?, spacewalk_status = ? WHERE
(device_id = ?) [42121-158]

I cannot repruduce it in simple tests with either EntityManager or my
Service classes, but it fails quite reliably in simple ZK web application.

Do you have any idea what could have gone wrong? Last @Embedded mapping
somehow overrides previous two, but why?

Regards,
Pavel Arnost
-- 
View this message in context: http://old.nabble.com/Duplicate-column-name-with-%40Embedded-and-%40AttributeOverrides-tp32370401p32370401.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top