# Java/Hibernate: DB-Passwort ändern



## Sneakizzel (23. Aug 2011)

Morgen zusammen,

ich benutze die H2 Datenbank und möchte das meine Java-Anwendung mittels Hibernate das Passwort des DB-Admin (hier SA) ändert.

In meiner DAO-Klasse hab ich das einfach so propiert:


```
EntityTransaction tx = getEntityManager().getTransaction();
tx.begin();
Query query = getEntityManager().createQuery("SET PASSWORD = '" + passwort + "'");
query.executeUpdate();
tx.commit();
```

Es kommt folgende Exception:

java.lang.IllegalArgumentException: node to traverse cannot be null!
	at org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:63)
	at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:280)
	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124)
	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770)
	at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)
...


Hibernat bemängelt wohl das ein Select in der SQL-Anweisung fehlt. Per google hab ich nichts gefunden wie man das Passwort ändert.

Grüße sneakizzel


----------



## Deros (23. Aug 2011)

was soll den "set password =..." für nen statement sein?
versuch es mal mit was richtung 
	
	
	
	





```
ALTER USER SA SET PASSWORD 'neuesPasswort'
```


----------



## Sneakizzel (23. Aug 2011)

Hallo Deros,

mit dem SET PASSWORT - Statement wird das passwort für den aktuell angemeldeten User geändert (SQL Grammar), über die Datenbank-Konsole funktioniert das auch wunderbar. 

Bei deinem Vorschlag bekomme ich die Gleiche Exception, irgendawnn hatte ich Ihn auch mal so weit das er bemängelt hat das die Tabelle nicht gemapped ist.


java.lang.IllegalArgumentException: node to traverse cannot be null!
	at org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:63)
	at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:280)
	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124)
	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770)
	at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)

Grüße sneakizzel


----------



## Deros (23. Aug 2011)

achso musst für das statment natürlich nen createNativeQuery machen, damit er das direkt als sql-statement absetzt


----------



## Sneakizzel (23. Aug 2011)

Mhh, die Welt kann so einfach sein. Danke.


----------

