у меня есть отношения следующим образом, используя Hibernate аннотации, это то, что я пробовал:Как создать индекс для таблиц соединений с помощью аннотаций Hibernate?
public class Job{
...
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "jobs_resource_locations")
@ForeignKey(name = "job_inputs_fk")
@Index(name="job_inputs_fk")
private List<FileSystemLocation> inputs;
Такого рода вещи хорошо работает на ManyToOne так:
@ManyToOne
@JoinColumn(name = "service_call_id", referencedColumnName = "id")
@ForeignKey(name = "job_service_call_fk")
@Index(name = "job_service_call_fk")
private ServiceCall serviceCall;
Я хотел убедиться, что иностранные ключ индексируется на PostgreSQL и что схема похожа на MySQL, поэтому @ForeignKey и @Index с тем же именем (MySQL всегда создает индекс с тем же именем, что и FK).
Я не могу создать индекс на обратной стороне, потому что FileSystemLocation не знает отношения. Следовательно, JoinTable.
Бывший пример не удается, так как Hibernate не находит столбец в Иове индексировать:
org.hibernate.MappingException: Unable to find logical column name from physical name null in table jobs
Кто-нибудь знает, как создать индексы на JoinTable внешних ключей с использованием Hibernate?
Не то, что я хотел, но я предполагаю, что это то, что мне нужно было услышать. – 2010-12-22 13:57:01