Grails / PostgreSqlアプリにPOJOドメインクラスがあり、postgresシーケンスgeneratorgをそのIDにマッピングしようとしています。
POJOの場合:
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "flight_id")
public long getId() {
return id;
}
Postgresの場合:
-- Sequence: flight_id
-- DROP SEQUENCE flight_id;
CREATE SEQUENCE flight_id
INCREMENT 1
MINVALUE 1n
MAXVALUE 9223372036854775807
START 1
CACHE 1;
ALTER TABLE flight_id
OWNER TO postgres;
grails generate-allを実行しようとすると、そのドメインに対して次のようになります。
Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Unknown Id.generator: flight_id
これを除いて、他のすべては問題なく動作しているようです。Postresネイティブジェネレーターを使用しようとしているので、Grailsアプリから独立したDBに対してCRUD操作を実行するオプションがあります。
ヒントをいただければ幸いです。