Mittwoch, 11. Juli 2012

User Password changing at the Oracle-DB

The instruction
alter user user_name identified by new_password;
allowed to change the password.
Important: This is your own password or you have the right to change the password.

Freitag, 18. November 2011

Limit auf Oracle DB

If you have a select statement and you need amount of 10 elements, where are no limit, like in mysql, one solution is a select to close about of a select

select * from (select id from table2 t2 where t2.col2 = xyz) where rownum <=10;

Sonntag, 9. Oktober 2011

Count with Criteria

The SELECT-Statment is "SELECT count(id) FROM TABLE" and if you use Hibernate to make this select where are several ways to do this. The first way in JAVA is

StringBuilder sql = new StringBuilder("SELECT ");
sql.append("count(id) FROM table ");
Query query = getSession().createSQLQuery(sql.toString());


Use the result like this:

ArrayList result = (ArrayList) query.list();
if (result != null) {
for (Object temp : result) {
BigDecimal count = (BigDecimal) ((Object[]) temp)[0];
}
}


This is dependent on the database.

If you will use several databases the select statement must be change to criteria queries.

Criteria crit = getSession().createCriteria(xyzObject.class);
crit.setProjection(Projections.projectionList().add(
Projections.count("id") ));

The result is processed like the first version.

The method setProjection(..) allowed several things to add like
Projections.projectionList()
.add( Projections.rowCount() )
.add( Projections.avg("weight") )
.add( Projections.max("weight") )
.add( Projections.groupProperty("color") )
from http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querycriteria.html

Freitag, 10. Juni 2011

JBoss 5.1 den Port von 8080 auf 9090 ändern

Unter ..\server\default\deploy\jbossweb.sar befindet sich die Datei server.xml in der ist der Connector für den Port zu finden:

connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" connectionTimeout="20000" redirectPort="8443"


Hier kann der Port jetzt geändert werden.

Montag, 6. Juni 2011

Datum auf der Oracle DB abfragen

Ist auf einer Oracle 11g mit einem Datum zu arbeiten, hat der SQL-Befehl folgende Teile zu enthalten

... to_date('value','dd.mm.yyyy hh24:mi:ss')...

dem to_date('Wert','dd.mm.yyyy hh24:mi:ss') wird eine Zeichenkette Wert übergeben, für welche die Festlegung gilt 'dd.mm.yyyy hh24:mi:ss', d.h. Tag(dd).Monat(mm).Jahr(yyyy) mit der Uhrzeit(hh24):Minute(mi) und den Sekunden(ss).

Wichtig ist, dass bei dieser Konfiguration 24h pro Tag angenommen werden. Wird nur hh angegeben sind alle Werte größer 12 unzulässig. Weiterhin sind die Minuten mit mi angegeben.
Eine Fehlerquelle ist, wenn man analog dem Monat mm angibt.

Weitere Infomrationen oder Varianten von to_date können im Internet in der Dokumentation gefunden werden.

Donnerstag, 24. März 2011

Referenzen einer Methode im Eclipse anzeigen

Mit dem Cursor auf die zu untersuchende Methode gehen und das Kontextmenü aufrufen. Dort References aufrufen und dann nach Wahl über das Projekt oder den Workspace suchen.
Einfach aber wird immer wieder vergessen (von mir).

Mittwoch, 9. März 2011

Select im Select mit Hibernate Criteria

Um mit einer Criteria Abfrage in Hibernate ein SELECT in einem SELECT verwenden zu können, wird vom criteria-Objekt eine weiteres criteria-Objekt erzeugt.

Criteria criteria = getSession().createCriteria(XY.class);

criteria.add(Restrictions.like("attr1", '12'));
criteria.add(Restrictions.eq("attr2", true));
criteria.add(Restrictions.eq("attr3", false));

Criteria childCriteria = criteria.createCriteria("xyz");
childCriteria.add(Restrictions.between("date", von, bis));

//Sortierung der Liste nach attr1 aufsteigend
criteria.addOrder(Order.asc("attr1"));

List result = criteria.list();

Die Klassen bzw. Tabellen zu der Abfrage sehen wir folgt aus:

@Entity
@javax.persistence.Table(name = "XY")
@Table(appliesTo = "XY")
public class XY implements Serializable {

private static final long serialVersionUID = -9L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long attr1;
private boolean attr2;
private boolean attr3;

@OneToMany(targetEntity = XYZ.class, cascade = CascadeType.ALL)
@JoinTable(name = "XY_XYZ")
private List xyz;
}

@Entity
@javax.persistence.Table(name = "XYZ")
@Table(appliesTo = "XYZ")
public class XYZ implements Serializable {

private static final long serialVersionUID = 29L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private Date date;
}