यह मेरा संस्थाओं हैं:जेपीए कई करने वाली कई जुड़ें यौगिक कुंजी के साथ तालिका इकाई "अशक्त आईडी उत्पन्न"
public class Account extends AbstractEntity<Long> {
@Id
@SequenceGenerator(name = "accountSequence", sequenceName = "SQ_ACCOUNTS", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "accountSequence")
@Column(name = "ACC_ID", nullable = false)
private Long id;
...
}
public class Integration extends AbstractEntity<Long> {
@Id
@SequenceGenerator(name = "integrationSequence", sequenceName="SQ_INTEGRATIONS", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "integrationSequence")
@Column(name = "INT_ID", nullable = false)
private Long id;
...
public void addIntegration(Integration integration) {
IntegrationAccount association = new IntegrationAccount();
// This does not help
//association.setIntAccountsPK(new IntAccountsPK(integration.getId(), this.getId()));
association.setAccount(this);
association.setIntegration(integration);
this.integrationAccounts.add(association);
integration.getIntAccountsCollection().add(association);
}
}
और इस में शामिल होने तालिका
@Entity
@Table(name = "INT_ACCOUNTS")
public class IntegrationAccount {
@EmbeddedId
protected IntAccountsPK intAccountsPK;
@JoinColumn(name = "ACC_ID", referencedColumnName = "ACC_ID", insertable = false, updatable = false)
@ManyToOne
private Account account;
@JoinColumn(name = "INT_ID", referencedColumnName = "INT_ID", insertable = false, updatable = false)
@ManyToOne
private Integration integration;
...
}
@Embeddable
public class IntAccountsPK implements Serializable {
@Column(name = "INT_ID", nullable = false)
private Long intId;
@Column(name = "ACC_ID", nullable = false)
private Long accId;
...
}
के लिए इकाई है और जब मैं करता हूँ : org.hibernate.id.IdentifierGenerationException:
account.addIntegrations(integrations.getTarget());
account.setCustomer(customer);
accountService.save(account);
मैं अपने लॉग की वजह से में यह मिल गया अशक्त आईडी उत्पन्न के लिए: class com.dhl.dcc.domain.IntegrationAccountAccount
मुझे इस तरह के मैपिंग के बारे में बहुत कुछ जानकारी नहीं है, क्या आप कृपया मुझे बता सकते हैं कि इस मैपिंग में सुधार कैसे करें (तालिका में शामिल होने के लिए इकाई को संरक्षित किया जाना चाहिए) और कैसे करें संबंधित एकाग्रता के साथ खाता बचाओ? धन्यवाद।
जैसा कि आपने कहा था, एक आकर्षण की तरह, धन्यवाद। मुझे "insertable = false, updatable false" भी निकालना पड़ा। – DominikM