error no hibernate session bound to thread

Ngoding hibernate dan spring dapat error begini

SEVERE: >>org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
Tambahkan @Transaction pada method yang terjadi error

SEVERE: >>org.hibernate.QueryException: Not all named parameters have been set: [noMesin] [from StockRinci a where a.noMesin = :noMesin]

Awalnya coding query seperti ini :

@Transactional
public StokRinci findByNomesin(String noMesin) {
String stringQuery = "from StokRinci a where a.noMesin = :noMesin";
Query query = getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(stringQuery);

StokRinci st = (StokRinci) query.uniqueResult();
return st;
}

ya iya lah error 🙂 ,, kan di stringQuery mendifinisikan parameter tp pada object query kok ga dikasih parameter ,

OK bos,, saya tambahkan parameter ini aja

query.setParameter("noMesin", noMesin);
@Transactional
public StokRinci findByNomesin(String noMesin) {
String stringQuery = "from StokRinci a where a.noMesin = :noMesin";
Query query = getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(stringQuery);
query.setParameter("noMesin", noMesin);
StokRinci st = (StokRinci) query.uniqueResult();
return st;
}

Ops ,, beres ternyata 🙂

Alhamdulillah.

Advertisements

install font ttf-microsoft core font

Jasper Report error : net.sf.jasperreports.engine.util.JRFontNotFoundException: Font ‘Times New Roman’ is not available to the JVM.

Ops, ternyata laporan menggunakan font Time New Roman sedangkan di JVM tidak terdapat font Time New Roman.

Untuk resolve masalah ini ada 2 cara ::

#1.
Ubah file jasper ( laporan.jrxml ) menggunakan font2 yang ada di JVM

#2.
Install font ttf-mscorefonts

Untuk install font ttf-mscorefonts, buka Ubuntu Software Center : ketikkan “ttf-mscorefonts”
tanpa tanda petik 🙂

Klik Install. tunggu sampai selesai . 😀

Sumber Untuk install font ms core fonts ::
http://www.howtogeek.com/howto/15495/add-microsoft-core-fonts-to-ubuntu/

entity manager createNativeQuery

JPA TOPLINK :: List<TEMPSP> yang berasal dari query native

public List<Tempsp> getNospgtempBelomCommit(){
String query = "select h.* from TEMP_SP h left join SP s on s.NO_TEMP = h.NO_TEMP where s.NO_TEMP is null";

List<Tempsp> list = (List<Tempsp>) this.entityManager.createNativeQuery(query,Tempsp.class).setHint("toplink.refresh", "true").getResultList();
return list;
}

Sukses

menggunakan left join untuk menggantikan not in

Untuk query menggunakan NOT IN koq hasil querynya lama banget ya sampek 10 detik ,, bhe bhe bhe ga berhees dhek rhemek cong !

Q> query yang 10 detik

SELECT * FROM temp_sp WHERE no_temp NOT IN (SELECT no_temp FROM sp WHERE no_temp IS NOT NULL )

Q> query yang 1 detik

SELECT a.* FROM temp_sp a
LEFT JOIN sp b on a.no_temp = b.no_temp
where b.no_temp is null

) Note ::
Dalam pengetesan query menggunakan database yang sama
jumlah row tabel temp_sp : 400
jumlah row tabel sp : 166,119