2012-09-26 10 views
5

Sto utilizzando querydsl-maven-plugin per esportare percorsi Q da un database Oracle 11g. Il problema che sto affrontando è che Oracle NUMBER campi vengono mappati a NumberPath<java.math.BigDecimal> invece di NumberPath<Long>Come posso dire a querydsl-maven-plugin di generare NumberPath con Long invece di BigDecimal?

C'è un modo per istruire querydsl-maven-plugin di tradurre BigDecimal a Long durante la generazione del codice?

L'approccio che sto prendendo in questo momento è quello di utilizzare il plugin per generare il codice e quindi tradurre i tipi a mano.

Eventuali suggerimenti sarebbero apprezzati.

risposta

2

Attualmente è possibile dichiarare tipi di utente personalizzato nella configurazione del querydsl-maven-plugin come questo

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

com.example.NumericLongType avrebbe bisogno di attuare il com.mysema.query.sql. types.Type interfaccia

Ma idealmente questo dovrebbe essere qualcosa di simile

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

e Querydsl avrebbe gestito la mappatura da NUMERICA a Long internamente.

Sentitevi liberi di aprire un biglietto per questo.

Aggiornamento

mappature numerici sono ora personalizzabile in Querydsl https://github.com/mysema/querydsl/issues/273

+0

c'è documentazione disponibile su come configurare questo? – bert

+0

È possibile fare affidamento sui mapping predefiniti menzionati nel problema o aggiungere sostituzioni tramite questo metodo di configurazione http://www.querydsl.com/static/querydsl/2.9.0/apidocs/com/mysema/query/sql/Configuration .html # registerNumeric% 28int,% 20int,% 20java.lang.Class% 29 –

+0

grazie, stavo scavando attraverso il codice queryDSL e ho trovato anche questo. È possibile farlo tramite Maven Config? Semplicemente curioso, perché penso che userò MappingProjection bert

Problemi correlati