Page 1 of 1

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

Posted: 08 Mar 2025, 12:50
by Anonymous
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?