Настройка такова: у моего приложения много событий, которые могут произойти. Событие - это всего лишь несколько добавленных полей и EventCode, которые содержат некоторую информацию. В основном события - это таблица соединений с несколькими добавленными сведениями.Unipirectional 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