public JpaTag convert(Tag source) {
return source instanceof JpaTag ? (JpaTag)source : createEntity(source);
}
private JpaTag createEntity(Tag source) {
JpaTag convertedTag;
TypedQuery<JpaTag> query = manager.createNamedQuery(JpaTag.FIND_BY_KEYWORD, JpaTag.class);
query.setParameter(JpaTag.KEYWORD_PARAM, source.getKeyword());
convertedTag = JpaUtil.getSingleResult(query.getResultList());
if (convertedTag == null){
convertedTag = new JpaTag();
}
updateProperties(source, convertedTag);
return convertedTag;
}