2012-09-26 15 views
5

Estoy usando querydsl-maven-plugin para exportar Q rutas desde una base de datos Oracle 11g. El problema que estoy enfrentando es que Oracle NUMBER campos se asignan a NumberPath<java.math.BigDecimal> en lugar de NumberPath<Long>¿Cómo puedo decirle a querydsl-maven-plugin que genere NumberPath con Long en lugar de BigDecimal?

¿Hay alguna manera de instruir a querydsl-maven-plugin para traducir BigDecimal a Long durante la generación de código?

El enfoque que estoy tomando en este momento es utilizar el complemento para generar el código y luego traducir los tipos a mano.

Cualquier sugerencia sería apreciada.

Respuesta

2

En la actualidad es posible declarar tipos de usuario personalizada en la configuración de la querydsl-maven-plugin de esta manera

<configuration> 
    <customTypes> 
    <customType>com.example.NumericLongType</customType> 
    </customTypes> 
</configuration> 

com.example.NumericLongType tendría que poner en práctica el com.mysema.query.sql. types.Type interfaz

Pero idealmente esto debería ser algo como esto

<configuration> 
    <overrides> 
    <NUMERIC>java.lang.Long</NUMERIC> 
    </overrides> 
</configuration> 

y Querydsl manejaría el mapeo desde numérico para larga internamente.

No dude en abrir un ticket para ello.

Actualizar

asignaciones numéricas están ahora personalizable en Querydsl https://github.com/mysema/querydsl/issues/273

+0

hay documentación disponible sobre cómo configurar esto? – bert

+0

Puede confiar en las asignaciones predeterminadas que se mencionan en el problema o agregar anulaciones mediante este método de configuración http://www.querydsl.com/static/querydsl/2.9.0/apidocs/com/mysema/query/sql/Configuration .html # registerNumeric% 28int,% 20int,% 20java.lang.Class% 29 –

+0

gracias, estaba buscando el código queryDSL y encontré esto también. ¿Es posible hacer esto a través de Maven config? Solo curiosidad, ya que creo que usaré MappingProjection bert

Cuestiones relacionadas