hibernate: one2one inverse

2009-08-11 Tema obsahu Martin Beránek
Zdravím,

narazil jsem na následující problém:

Mám entitu Storage, která uchovává nastavení a stav logického úložného 
prostoru. Tahle entita je velmi často updatována (co sekundu) kvůli položce
used, což je velikost zaplnění. To však úplně zablokovalo její editaci z 
webového rozhraní (entita je verzována).

Napadlo mě vytvořit novou entitu StorageUsed a tam tuhle property vytáhnout. To 
zřejmě bude fungovat, ale nedaří se mi rozumným způsobem zapsat
mapování do hbm.xml (java entity generujeme). Vztah one2one se má simulovat 
přes mane-to-one s unique=true, ale tohle neumí inverse, takže pak mi
vazbu drží Storage a ne StorageUsed. Chtěl bych, aby vazbu držela StorageUsed 
už kvůli jednoduchému update ze současného stavu (systém je v provozu)
a taky z logiky věci.

Nějaké nápady? Díky za pomoc

--
Martin Beránek
ICZ a.s.



smime.p7s
Description: S/MIME Cryptographic Signature


Re: hibernate: one2one inverse

2009-08-11 Tema obsahu Ondra Medek
2009/8/11 Martin Beránek martin.bera...@i.cz:
 Zdravím,

 narazil jsem na následující problém:

 Mám entitu Storage, která uchovává nastavení a stav logického úložného 
 prostoru. Tahle entita je velmi často updatována (co sekundu) kvůli položce
 used, což je velikost zaplnění. To však úplně zablokovalo její editaci z 
 webového rozhraní (entita je verzována).

A nebylo by snazsi udelat, aby automaticky update polozky used
nemenil cislo verze? Popr. vypnout verzovani nebo ho delat rucne
pouze pri pristupu z webu?


Re: hibernate: one2one inverse

2009-08-11 Tema obsahu Jaroslav Hurdes

Na podobny problem jsem pouzil toto reseni

v domenovem objektu jsem zadal aby se dana polozka nemenila (update =
false) (mapovani pomoci xDoclet)
/**
* Vrátí cas zpracovani
* @hibernate.property
*  column = lp_processed_time
*  insert = false
*  update = false
*  not-null = false
*  type = timestamp
*/
   public Timestamp getProcessedTime() {
   return processedTime;
   }

a napsal jsem si specialni metodu do DAO objektu, ktera provede update
teto polozky, ale nezmeni se cislo verze a v ni se provadi

   Query q = getSession().createQuery(update ModelX
   +  set lp_processed_time = :lp_processed_time
   +  where lp_id = :id);
   q.setTimestamp(lp_processed_time,
TimeUtils.getActualTimestamp());
   q.setLong(id, model.getId());
   int res = q.executeUpdate();
   if (res != 1) {
   throw new
EntityNotFoundException(getServiceObject().getLocalizedText(MessagesKeys.common_exceptions_entityNotFound), 


model);
   }

   getSession().flush();

Takto muzu s danou entitou pracovat pohodlne v aplikaci a cist i
processedTime, jedine co nemuzu je provest update nastaveneho casu
pomoci save, ale jen touto spec metodou.

Jaroslav Hurdes

Martin Beránek napsal(a):

Zdravím,

narazil jsem na následující problém:

Mám entitu Storage, která uchovává nastavení a stav logického úložného 
prostoru. Tahle entita je velmi často updatována (co sekundu) kvůli položce
used, což je velikost zaplnění. To však úplně zablokovalo její editaci z 
webového rozhraní (entita je verzována).

Napadlo mě vytvořit novou entitu StorageUsed a tam tuhle property vytáhnout. To 
zřejmě bude fungovat, ale nedaří se mi rozumným způsobem zapsat
mapování do hbm.xml (java entity generujeme). Vztah one2one se má simulovat přes 
mane-to-one s unique=true, ale tohle neumí inverse, takže pak mi
vazbu drží Storage a ne StorageUsed. Chtěl bych, aby vazbu držela StorageUsed 
už kvůli jednoduchému update ze současného stavu (systém je v provozu)
a taky z logiky věci.

Nějaké nápady? Díky za pomoc

--
Martin Beránek
ICZ a.s.

  





log4j, vlastny appender a PropertyConfigurator

2009-08-11 Tema obsahu Dusan Zatkovsky
Ahoj.

Mam vlastny log4j appender a ten by som rad konfiguroval cez .properties.

Netusim ale, ako dostat konfiguracne premenne z .properties do mojho 
appenderu, pretoze mi na to nepasuje ziadna z jeho metod.

Predstavujem si to nejak takto:

log4j.appender.A=test.MojAppender
log4j.appender.A.foo = faa
log4j.appender.A.fii = fuu

log4j.rootLogger=INFO, A

Rad by som docielil, aby sa pri inicializacii nejak dostalo to foo:faa 
a fii:fuu do toho appendera. Pozeral som do zdrojakov JDBCAppender, ktory 
nieco take umoznuje, ale nenasiel som to tam ( resp. nasiel som setUser(), 
setPassword(), ale netusim, kto ich vola ).

Nejaky napad?

-- 
Dusan


Re: log4j, vlastny appender a PropertyConfigurator

2009-08-11 Tema obsahu Pavel Savara
Pokud si dobre pamatuju tak log4j vola set metody podle naming
convention takze kdyz ve vasem appendru budete mit

public void setFoo(String foo){this.foo = foo;} a
public String getFoo()...

tak se vam hodnoty nastavi automaticky.

Palko

2009/8/11 Dusan Zatkovsky msk.c...@gmail.com:
 Ahoj.

 Mam vlastny log4j appender a ten by som rad konfiguroval cez .properties.

 Netusim ale, ako dostat konfiguracne premenne z .properties do mojho
 appenderu, pretoze mi na to nepasuje ziadna z jeho metod.

 Predstavujem si to nejak takto:

 log4j.appender.A=test.MojAppender
 log4j.appender.A.foo = faa
 log4j.appender.A.fii = fuu

 log4j.rootLogger=INFO, A

 Rad by som docielil, aby sa pri inicializacii nejak dostalo to foo:faa
 a fii:fuu do toho appendera. Pozeral som do zdrojakov JDBCAppender, ktory
 nieco take umoznuje, ale nenasiel som to tam ( resp. nasiel som setUser(),
 setPassword(), ale netusim, kto ich vola ).

 Nejaky napad?

 --
 Dusan



Re: log4j, vlastny appender a PropertyConfigurator

2009-08-11 Tema obsahu Dusan Zatkovsky
On Tuesday 11 of August 2009 15:38:48 Pavel Savara wrote:
 Pokud si dobre pamatuju tak log4j vola set metody podle naming
 convention takze kdyz ve vasem appendru budete mit

 public void setFoo(String foo){this.foo = foo;} a
 public String getFoo()...

No, to som z toho JDBCAppendera tak nejak vytusil, ale ked som to skusil, 
nefungovalo to. Teraz som to skusil znovu na cistom appenderovi a nic.

-- 
Dusan


Re: log4j, vlastny appender a PropertyConfigurator

2009-08-11 Tema obsahu Dusan Zatkovsky
On Tuesday 11 of August 2009 15:52:16 Dusan Zatkovsky wrote:

Attachujem zdrojaky a properties, mne pridu uplne v poriadku.

-- 
Dusan


log4j.rootLogger=INFO, S

log4j.appender.S=test.SqlAppender2
log4j.appender.S.FOO = 12
log4j.appender.S.fOO = 13
log4j.appender.S.foo = 14
log4j.appender.S.FoO = 15
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package net.docfix.logging;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
//import net.docfix.logging.SqlAppender;

/**
 *
 * @author msk
 */
public class Main {


public static void main ( String args[] ) throws ClassNotFoundException {


PropertyConfigurator.configure(Main.class.getResource(/log4j.properties));


Logger.getRootLogger().info ( f);



}


}
package test;

import org.apache.log4j.Layout;
import org.apache.log4j.spi.ErrorHandler;
import org.apache.log4j.spi.Filter;
import org.apache.log4j.spi.LoggingEvent;

public class SqlAppender2 implements org.apache.log4j.Appender {
private Filter filter;
private ErrorHandler errorhandler;
private Layout layout;
private String name;
private String foo;

@Override
public void addFilter(Filter newFilter) {
this.filter = newFilter;
}



@Override
public Filter getFilter() {
return filter;
}



@Override
public void clearFilters() {
}



@Override
public void close() {
}



@Override
public void doAppend(LoggingEvent event) {
System.out.println(event.toString());
}



@Override
public String getName() {
return name;
}



@Override
public void setErrorHandler(ErrorHandler errorHandler) {
this.errorhandler = errorHandler;
}



@Override
public ErrorHandler getErrorHandler() {
return errorhandler;
}



@Override
public void setLayout(Layout layout) {
this.layout = layout;
}



@Override
public Layout getLayout() {
return this.layout;
}



@Override
public void setName(String name) {
this.name = name;
}



@Override
public boolean requiresLayout() {
return false;
}


public void setFoo(String s) {
System.out.println(setFoo());
this.foo = s;
}

public String getFoo() {
System.out.println(getFoo());
return this.foo;
}



}


Re: log4j, vlastny appender a PropertyConfigurator

2009-08-11 Tema obsahu Ján Valkovič
Zdravim,
toto nepomoze?
http://www.javaworld.com/javaworld/jw-12-2004/jw-1220-toolbox.html?page=5

ya

Dňa Ut, 2009-08-11 o 15:52 +0200, Dusan Zatkovsky napísal:
 On Tuesday 11 of August 2009 15:38:48 Pavel Savara wrote:
  Pokud si dobre pamatuju tak log4j vola set metody podle naming
  convention takze kdyz ve vasem appendru budete mit
 
  public void setFoo(String foo){this.foo = foo;} a
  public String getFoo()...
 
 No, to som z toho JDBCAppendera tak nejak vytusil, ale ked som to skusil, 
 nefungovalo to. Teraz som to skusil znovu na cistom appenderovi a nic.
 




Re: log4j, vlastny appender a PropertyConfigurator

2009-08-11 Tema obsahu Dusan Zatkovsky
On Tuesday 11 of August 2009 16:03:37 Ján Valkovič wrote:

 Zdravim,
 toto nepomoze?
 http://www.javaworld.com/javaworld/jw-12-2004/jw-1220-toolbox.html?page=5

AHA! AppenderSkeleton! :)

Ja implementujem Appender interface, o tomto som vobec nevedel.

Diky 100x

-- 
Dusan


Ako zabranit Castor XML escapingu

2009-08-11 Tema obsahu Tomas Studva
Dobry den,
pouzivam Castor na serializaciu objektov do XML a jeden z atributov objektu
je String. Tento string je XML. Ako sa da ocakavat castor to za string
povazuje a tak vy-escapuje vsetky xml znaky.

Z p sa stane lt;pgt;.

Ja sa snazim tomu zabranit a neviem na to prist ako. Co som pozeral na nete,
tak Castor nie co take nepodporuje.

Tomas Studva


Re: Ako zabranit Castor XML escapingu

2009-08-11 Tema obsahu Petr Prochazka
Castor nepouzivam, ale poohledl bych se v dokumentaci po CDATA marshalling
Petr Prochazka

2009/8/11 Tomas Studva tstu...@gmail.com

 Dobry den,
 pouzivam Castor na serializaciu objektov do XML a jeden z atributov objektu
 je String. Tento string je XML. Ako sa da ocakavat castor to za string
 povazuje a tak vy-escapuje vsetky xml znaky.

 Z p sa stane lt;pgt;.

 Ja sa snazim tomu zabranit a neviem na to prist ako. Co som pozeral na
 nete, tak Castor nie co take nepodporuje.

 Tomas Studva