DocDetailsConverter.java
package sk.iway.iwcm.doc;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import sk.iway.iwcm.admin.layout.DocDetailsDto;
/**
* Konvertuje databazovy typ int docId na DocDetailsDto objekt a naopak, priklad pouzitia:
*
* @Column(name = "email_doc_id")
* @Convert(converter = DocDetailsConverter.class)
* private DocDetailsDto emailDoc;
*
* v databaze sa ulozi hodnota docId ale na FE bude dostupny DocDetailsDto objekt
*/
@Converter
public class DocDetailsConverter implements AttributeConverter<DocDetailsDto, Integer> {
@Override
public Integer convertToDatabaseColumn(DocDetailsDto doc) {
//podmienka >0 je aby fungovala anotacia @NotNull na entite
if (doc != null && doc.getDocId()>0) return Integer.valueOf(doc.getDocId());
return null;
}
@Override
public DocDetailsDto convertToEntityAttribute(Integer docId) {
if (docId != null && docId.intValue()>0) {
DocDB docDB = DocDB.getInstance();
DocDetails doc = docDB.getBasicDocDetails(docId, false);
if (doc != null) return new DocDetailsDto(doc);
}
return null;
}
}