Entität mit höchster ID per JPAQL selektieren

Status
Nicht offen für weitere Antworten.

Fenixx

Aktives Mitglied
Hi zusammen,

ich möchte wie oben genannt die Entität mit der höchsten ID selektieren.
An sich kein Problem, wenn man nicht JPAQL bzw. EJBQL verwenden muss.
Hier meine Entität und auch gleichzeitig der Versuch untendrunter:
Code:
@Table(name = "myEntity")
@Name("myEntity")
@Entity
public class MyEntity implements Serializable
{

  private static final long serialVersionUID = -5925884595767387029L;
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  @Column(nullable=false)
  private Long mySearchValue;
  @Version
  private int version;

}
 MyEntity fromDB = (MyEntity ) getEntityManager().createQuery(
        "SELECT myEntity FROM myEntity WHERE myEntity.id in (SELECT MAX(myEntity.id) from myEntity)")
    .getSingleResult();

Nur leider erhalte ich eine QuerySyntaxException.

Kann mir vielleicht wer sagen, wo da der Fehler liegen könnte, oder ein Tutorial nennen, das sich mit EJBQL bzw. JPAQL beschäftigt?
 

Oli

Top Contributor
muss es nicht heißen:

SELECT myEntity FROM myEntity WHERE myEntity.id = (SELECT MAX(myEntity.id) from myEntity)
 

Landei

Top Contributor
Keine Ahnung von JPAQL, aber kann es sein, dass es ..WHERE myEntity.id = (SELECT... heißen muss?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben