0
セットアップはこれです:私のアプリケーションには起こりうる多くのイベントがあります。イベントは、いくつかの情報が追加されたフィールドとイベントコードです。基本的にイベントは、いくつかの情報が追加された結合テーブル自体です。単方向OneToMany余分な結合テーブルを持たないHibernate
私はApplicationIdとEventIdのテーブルを作成しないでください。ちょうど思える私は
Caused by: org.hibernate.MappingException: Foreign key (FK_157jxjblselu4urv8c0kqee6l:ApplicationEvent [applicationEvents_id])) must have same number of columns as the referenced primary key (ApplicationEvent [Application_id,applicationEvents_id])
アプリケーション(多くは削除されますが、問題がある場合、これはある)
@Entity
@Table
public class Application {
//Lots of other stuff
private Set<ApplicationEvent> applicationEvents = new LinkedHashSet<ApplicationEvent>();
@OneToMany
@JoinTable(name="ApplicationEvent")
public Set<ApplicationEvent> getApplicationEvents() {
return applicationEvents;
}
public void setApplicationEvents(Set<ApplicationEvent> applicationEvents) {
this.applicationEvents = applicationEvents;
}
}
イベント
@Entity
@Table
public class ApplicationEvent {
private Long id;
private Long applicationId;
private EventCode eventCode;
private Boolean acknowledge;
private int sequence;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column
public Long getApplicationId() {
return applicationId;
}
public void setApplicationId(Long applicationId) {
this.applicationId = applicationId;
}
@OneToOne
@JoinColumn(name="EventCodeId")
public EventCode getEventCode() {
return eventCode;
}
public void setEventCode(EventCode eventCode) {
this.eventCode = eventCode;
}
@Column
public Boolean getAcknowledge() {
return acknowledge;
}
public void setAcknowledge(Boolean acknowledge) {
this.acknowledge = acknowledge;
}
@Column
public int getSequence() {
return sequence;
}
public void setSequence(int sequence) {
this.sequence = sequence;
}
//Some overriden methods
}
を使用しています。私はそれ以来、私の問題の声明に反して別のルートを行ってきました。表示されるイベントでアプリケーションが必要です。 – nerdlyist