26 Temmuz 2012 Perşembe

net.sf.jasperreports.engine.JRRuntimeException: Subreport overflowed on a band that does not support overflow.

iReport kullanıyorsanız ve aşağıdaki hatayı alıyorsanız;

net.sf.jasperreports.engine.JRRuntimeException: Subreport overflowed on a band that does not support overflow.

bu hatanın sebebi, sayfanızın herhangi bir bolumune koymuş olduğunuz subreport'tan kaynaklanmaktadır. Neden mi? Çünkü, subreport'u ana jrxml'a yerleştirdiniz diyelim, eğer bölümün yüksekliği subreport içeriği dolduktan sonra  küçük geliyorsa böyle bir hata alıyorsunuz.

Daha net açıklamak gerekiyorse;

Sayfamın page footer'ına bir subreport yerleştirdim. bunun orjinal yüksekliği belki 200, ama ben ana jrxml'deki yüksekliği 100 bırakmışım. Bu durumda jrxml'leriniz compile olmuyor.

1. Ya subreportunuz büyüyebilir olmayacak
2. ya da ana jrxml'deki ilgili kısmın boyutunu yükselteceksiniz.

4 Temmuz 2012 Çarşamba

Hibernate'te kolay sorgu yazma (Example.create)


Hibernate'e elimiz değmişken biraz daha karıştırayım dedim.
Şöyle bir güzellik ve kolaylık gördüm.

Yeni bir instance yaratıyorsunuz ve istediğiniz özellikleri set ediyorsunuz. Example.create(X) X yerine ilgili instance'ı veriyorsunuz. ve listeme işlemi gerçekleşiyor.

Tek tek Restrictions.eq("name", "Mavis").add(....).list() diye yazmaktansa bu daha kolay.

Cat cat = new Cat();
cat.setSex('F');
cat.setColor(Color.BLACK);
List results = session.createCriteria(Cat.class)     .add( Example.create(cat) )     .list();


Sorgu, cinsiyeti dişi ve rengi siyah olan kedileri listeleyecek.

kaynak sayfa: http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/querycriteria.html

3 Temmuz 2012 Salı

Hibernate'de çoklu kriter oluşturmak (Multiple OR, Hibernate Criteria Expression Or)

http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/querycriteria.html

"Restrictions.or"u çoklu bir şekilde kullanmak istedik, fakat aklımıza gelmedi, derken araştırdım buldum. Yukarıda link'ten ilgili sayfaya gidebilirsiniz.

//Normal Or kullanımı
aşağıdaki sorgu ismi Fritz'le başlayan ve yaşı null olmayan veya 0 olanları listeleyecek.

List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like("name", "Fritz%") )
    .add( Restrictions.or(
        Restrictions.eq( "age", new Integer(0) ),
        Restrictions.isNull("age")
    ) )
    .list();
 
Çoklu Or kullanımı için ise Restrictions.disjunction() 'ı kullanabilirsiniz.
 
List cats = sess.createCriteria(Cat.class)
      //ismi listenin içinde varolanlar
    .add( Restrictions.in( "name", new String[] { "Fritz", "Izi", "Pk" } ) ) 
 //ve yaşı null olmayan veya 0 veya 1 veya 3 olanlar
     .add( Restrictions.disjunction()
        .add( Restrictions.isNull("age") )
        .add( Restrictions.eq("age", new Integer(0) ) )
        .add( Restrictions.eq("age", new Integer(1) ) )
        .add( Restrictions.eq("age", new Integer(2) ) )
    ) )
    .list();