Wie übergeben Sie einen Dezimalwert aus einer Datenbank in einen DTO, ohne einen nicht übereinstimmenden Konstruktor gef

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie übergeben Sie einen Dezimalwert aus einer Datenbank in einen DTO, ohne einen nicht übereinstimmenden Konstruktor gef

by Anonymous » 08 Mar 2025, 12:50

Ich habe eine Java -App, die einen EntityManager verwendet, um eine Oracle -Datenbank abzufragen und eine einfache DTO -Klasse zu bevölkern. Bean-Injektion < /p>
< /blockquote>
Sobald ich versuche, einen Dezimalwert zu übergeben. Ich habe versucht, den Typ in der DTO zu einem Doppel-, Doppel- und BigDecimal zu machen - aber auch den Fehler < /p>
- dies funktionierte früher, als er gegen Java 8 lief.

Code: Select all

@PersistenceContext
private EntityManager em;

String hql = "SELECT new my.example.MyDTO(mt.intVal as intVal, mt.decVal as decVal) " +
"FROM MyTable mt " +
"WHERE mt.id = 1234";

TypedQuery findInsultsQuery = em.createQuery(hql, MyDTO.class);

//Here is where it gets the error - because of the mt.decVal
List results = findInsultsQuery.getResultList();
< /code>
Hier ist die DTO -Klasse.  Ich habe auch den zweiten Parameter als Doppel-, Doppel-, Schwimmer- und Float -Parameter ausprobiert.   Es wirft immer den No-Matching-Konstruktor-Fehler aus.public MyDTO(BigInteger intVal, BigDecimal decVal) {

}
Vorschläge?

Top