기존 엔티티에 색인을 추가하고 싶습니다. 특히 특정 항목에 대한 색인을 추가하고 싶습니다. 문서에 따라 다음과 같이 썼습니다 :EclipseLink - 색인 생성을 게시에 추가합니다.
1.first way
@Entity
@Table(name = "potatoe", schema = "mySchema")
public class Potatoe {
(...)
@Index(name = "knife", table = "potatoe", schema = "mySchema")
private String origin;
(...)
}
2.second way
@Entity
@Table(name = "potatoe", schema = "mySchema")
@Index(name = "knife", columnNames = "origin", table = "potatoe", schema = "mySchema")
public class Potatoe {
(...)
private String origin;
(...)
}
3. third way(pure jpa)
@Entity
@Table(name = "potatoe", schema = "mySchema", indexes = {@javax.persistence.Index(name = "knife", columnList = "origin")})
public class Potatoe {
(...)
private String origin;
(...)
}
하지만 인덱스가 작성되지 않았습니다. 그리고 나는 항상 예외를 gotted : EclipseLink가 만든
Caused by: org.postgresql.util.PSQLException: ERROR: error in syntax or/in near "."
쿼리
이며 나는 그가 인덱스의 이름을 변경 이유를 잘 모릅니다. eclipseLink가 점에 이름이있는 스키마를 추가하는 이유는 무엇입니까? 나는 이것이 "."라고 생각한다. 색인 생성 문제의 이름으로, 그러나 나는 이것을 삭제하는 방법을 모른다.CREATE INDEX myschema.knife ON potatoe (ORIGIN)]]
저는 eclipselink ver 2.5.0 및 postgresql ver 9.1-901에 대한 작업을하고 있습니다. 내가 EclipseLink가 제대로 쿼리 생성, 속성 "스키마"를 삭제
편집 // :
CREATE INDEX knife ON potatoe (ORIGIN)]]
하지만 문제는 몇 가지가 있기 때문에 내가 스키마를 정의해야한다는 것입니다. 따라서 정의 된 스키마가 없으면 관계에 대한 오류 (존재하지 않는 관계). 내 기본 관계가 "myschema"가 아니기 때문에 사실입니다.
나는 포스트 그레스에서 확인 작업 쿼리는 다음과 같다하지만 난이 생성하는 방법을 잘 모릅니다 :
CREATE INDEX knife ON myschema.potatoe (ORIGIN)
누군가가 생각이?
버그처럼 보인다 - 인덱스 스키마 이름 앞에 추가하지 말았어야하지만, 표합니다 - 모든 방법은 주위 –
어쩌면'시도 –
@ Vao Tsun 나는 모든 종류의 주석을 주석으로 칠해 모든 작업을 할 수 없다고 생각한다 :// @Index (name = "knife", columnNames = "origin", table = "potatoe" – newOne