データベースには 2 つのInteger
列があります (derby と db2)。内でそれらを互いに分割する必要がありJPQL
ます。
Integer
残りが 10 進数の場合、両方の列の型はゼロを返します。たとえば、型が int であるため、etc になります0.25
。0
SQL
たとえば、これを使用できます
select CAST(column1 as decimal(6,2))/CAST(column2 as decimal(6,2))from Sometable;
しかし、JPQL
同等のものは何ですか。
1つのオプションは(私はまだ試していません)@Transient
、エンティティに Decimal 型を返すメソッドを持ち、そこでこの計算を行い、それを渡すことですがJPQL
、むしろSQL
この作業をさせたいと思います。
Mysql は、データベース レベルでのキャストを必要としません。したがって、異なる RDBMS の動作は異なりますが、これは問題ありません。しかし、この操作には 10 進数へのキャストが必要であることを知るためにネイティブ クエリを使用する必要なく、JPQL は何をすべきでしょうか。
方言を追加<property name="openjpa.jdbc.DBDictionary" value="derby"/>
しても修正されませんでした。
JPA1であることに注意してください