čtvrtek 11. září 2008

Tak už ani balená voda v gůglu...

Kam ten svět spěje, pomyslel jsem si dnes po přečtení článku proklamující údajně znechucení jednoho z majitelů gůglu nad tím, že je unavený půtkami zaměstnanců kolem balené vody a bonbonů M&M. Už ani můj oblíbený gůgl prý není to co býval, prý tam chtěli více zpeněžit školku pro děti. Našincům z HR (čti ejčár) by asi vstávaly vlasy hrůzou, teda pokud by jim rovnou nevypadly, kdyby si přečetli jaké výhody má, pardon mělo, pracovat v gůglu.

Jak je vidět i v Google dělají jenom lidé, takže místo toho, aby si tetelili blahem, že mohou strávit část pracovní doby nad open source projektech dle libovůle, tak řeší balenou vodu a bonbóny U nás máme také pár zajímavých benefitů, nicméně lidé stejně většinou řeší "proč nemůžu mít svůj oblíbený druh čaje", "proč v kuchyňce není med do čaje" a "jak je ksakru možné, že zase dochází balená voda".

Je to úsměvné, co vlastně těm lidem chybí, takové základní věci řekl by si jeden. Žádné auto, mobil a nebo akcie, ale nicotná sklenka medu za dvě pětky . Jsme moc rozmazlení až zhýčkaní jak občas slýchávám a nebo stačí uspokojit především základní potřeby? Řekl bych, že tak trochu od obojího, ale...

Tak či onak je to vlastně jedno, protože o tom rozhoduje ejčár manévrující v prostoru vymezeném magickým trojúhelníkem: stravenky, angličtina a mobil. Na druhou stranu uznávám, nemají to v tom oddělení jednoduché, lapit nějakou novou dušičku na profil firmy v němž stojí v kolonce benefity: čaj dle vlastního výběru, následovaný medem a balenou vodu hraničí skoro s ekvilibristickým kouskem.

úterý 9. září 2008

Generické DAO pro Hibernate/JPA

Nečekejte žádnou raketovou vědu, ale jenom takový malý tip ;-). Na pár projektech jsem se setkal s tim, že pro každou entitu bylo ručně vytvořeno a nebo vygenerováno DAO. Většina těchto DAO objektů však obsahovala pouze metody pro CRUD operace (Create, Update, Delete) pro danou entitu. To vedlo k často se opakujícímu kódu, který rozhodně nebyl potřeba. Díky generickým typům zavedeným v Jave 5 můžeme vytvořit generické a typově bezpečné DAO, které bohatě poslouží jako náhrada za původní generované objekty.

public class GenericDAO<E extends Object>{
  private Class<E> entityClass;
  
  protected GenericDAO(Class<E> entityClass) {
    this.entityClass = entityClass;
  }

  public E get(Serializable id) {
    return (EgetSesion().get(entityClass, id);
  }
  
  public void save(E entity) {
    getSesion().save(entity);
  }
  
  public void update(E entity) {
    getSesion().save(entity);
  }
  
  public void delete(E entity) {
    getSesion().delete(entity);
  }
      
  protected Session getSesion() {
    return null//get Hibernate session from somewhere
  }
  
  protected Class<E> getEntityClass() {
    return entityClass;
  }
  
  public static <T extends Object> GenericDAO<T> createGenericDAO(Class<T> clazz) {
    GenericDAO<T> dao = new GenericDAO<T>(clazz);    
    return dao;
  }
}

Takto připravené DAO je možné jednoduše používát v kódu.

GenericDAO<Dog> dao = GenericDAO.createGenericDAO(Dog.class);
Dog dog = dao.get(1);

CZ podcast volume #26 - JavaFX

Tenhle podcast o JavaFX vzniknul již před čtrnácti dny, nicméně jeho vydání se opozdilo díky mojí dovolené, čímž bych se chtěl omluvit především našemnu vrchnímu stříhačovi Kolískovi, kterého vždycky popoháním :-). Takže do tohoto podcastu se nám podařílo ulovit Honzu Štěrbu, který nám poskytl poměrně komplexní představení tehnologie JavaFX.