Morphia 的 QueryDSL 不使用转换器
QueryDSL for Morphia doesn't use converters
我尝试将 QueryDSL for Morphia 集成到我的项目中,但 QueryDSL 似乎忽略了转换器。
仅 Morphia 查询有效:
return createQuery().field("email").equal(email).get();
QueryDSL 版本抛出异常,因为它没有使用转换器:
return query(user).where(user.email.eq(email)).fetchOne();
org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class org.example.Email
转换器通过注释配置:
@Entity
@Converters(EmailConverter.class)
public class User implements Serializable {
这是我的 Maven 设置:
<dependency>
<groupId>org.mongodb.morphia</groupId>
<artifactId>morphia</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>4.1.3</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-mongodb</artifactId>
<version>4.1.3</version>
</dependency>
...
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.morphia.MorphiaAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
我是不是遗漏了一些配置?或者转换器不能与 QueryDSL 一起使用?
QueryDSL 尚不支持 Morphia 转换器。我创建了一个 pull request 来添加该功能。
我尝试将 QueryDSL for Morphia 集成到我的项目中,但 QueryDSL 似乎忽略了转换器。
仅 Morphia 查询有效:
return createQuery().field("email").equal(email).get();
QueryDSL 版本抛出异常,因为它没有使用转换器:
return query(user).where(user.email.eq(email)).fetchOne();
org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class org.example.Email
转换器通过注释配置:
@Entity
@Converters(EmailConverter.class)
public class User implements Serializable {
这是我的 Maven 设置:
<dependency>
<groupId>org.mongodb.morphia</groupId>
<artifactId>morphia</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>4.1.3</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-mongodb</artifactId>
<version>4.1.3</version>
</dependency>
...
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.morphia.MorphiaAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
我是不是遗漏了一些配置?或者转换器不能与 QueryDSL 一起使用?
QueryDSL 尚不支持 Morphia 转换器。我创建了一个 pull request 来添加该功能。