2012-09-26 24 views
5

Tôi đang sử dụng querydsl-maven-plugin để xuất đường dẫn Q từ cơ sở dữ liệu Oracle 11g. Vấn đề tôi đang phải đối mặt là Oracle NUMBER lĩnh vực được ánh xạ tới NumberPath<java.math.BigDecimal> thay vì NumberPath<Long>Làm thế nào tôi có thể yêu cầu querydsl-maven-plugin tạo ra NumberPath với Long thay vì BigDecimal?

Có cách nào tôi có thể hướng dẫn querydsl-maven-plugin dịch BigDecimal để Long trong thế hệ mã?

Cách tiếp cận tôi đang thực hiện ngay bây giờ là sử dụng plugin để tạo mã và sau đó dịch các loại bằng tay.

Mọi gợi ý sẽ được đánh giá cao.

Trả lời

2

It is currently thể khai báo các loại người dùng tùy chỉnh trong cấu hình của querydsl-maven-plugin như

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

com.example.NumericLongType này sẽ cần phải thực hiện các com.mysema.query.sql. types.Type giao diện

Nhưng lý tưởng này nên được một cái gì đó như thế này

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

và Querydsl sẽ xử lý các ánh xạ từ NUMERIC Long trong nội bộ.

Hãy thoải mái mở một vé.

Cập nhật

ánh xạ Numeric nay có thể tùy chỉnh trong Querydsl https://github.com/mysema/querydsl/issues/273

+0

là có tài liệu có sẵn về cách cấu hình này? – bert

+0

Bạn có thể dựa vào ánh xạ mặc định được đề cập trong vấn đề hoặc thêm ghi đè thông qua phương pháp cấu hình này http://www.querydsl.com/static/querydsl/2.9.0/apidocs/com/mysema/query/sql/Configuration .html # registerNumeric% 28int,% 20int,% 20java.lang.Class% 29 –

+0

cảm ơn, tôi đã tìm hiểu mã queryDSL và tìm thấy điều này. Có thể thực hiện điều này thông qua cấu hình maven không? Chỉ cần tò mò, như tôi nghĩ tôi sẽ sử dụng MappingProjection bert

Các vấn đề liên quan