2009-12-28 3 views
0

У меня есть компонент адреса, который имеет компонент LatLng. Скажите, пожалуйста, как я могу проецировать этот компонент и преобразовать его в новый класс.hibernate - составляющая проекции

спасибо.

ответ

2

Насколько я понимаю вашу проблему, вы хотите создать отдельный класс для LatLng, что-то вроде ниже.

public class LatLng { 
} 

И затем хотите включить это в свой объект Адресный компонент, как показано ниже.

public class Address { 
    private LatLng latLng; 
} 

Теперь посмотрим на Custom value types in Hibernate и Mapping custom type in Hibernate.

0

В качестве примера, можно использовать критерии следующим образом:

Criteria criteria = session.createCriteria(Cat.class); 
criteria.add(Restrictions.like(“description”, “Pap”) 
    .addOrder(Order.asc(“description”); 

Criteria subCriteria = criteria.createCriteria("kind", "kind"); 
subCriteria.add(Restrictions.eq("description", "persa")); 

Criteria anotherSubCriteria = subCriteria.createCriteria("anAssociation","anAssociation"); 
anotherSubCriteria.add(Restrictions.eq("attribute", "anything")); 

criteria.setResultTransformer(new AliasToBeanResultTransformer(Cat.class)); 

criteria.crateAlias(“kind.anAssociation”, “kind_anAssociation”); 

criteria.setProjections(Projections.projectionList() 
    .add(Projections.alias(Projections.property(“id”), “id”)) 
    .add(Projections.alias(Projections.property(“kind.id”, “kind.id”)) 
    .add(Projections.alias(Projections.property(“kind.anAssocation.attribute”, “kind.anAssociation.attribute”)) 

List cats = criteria.list(); 

Но если вы хотите сохранить некоторый код, вы можете использовать šeimos и код просто

Filters filters = new Filters(); 
filters.add(new Filters(“description”, “Pap”) 
    .add(new Filter(“description”)) 
    .add(new Filter("kind.description", "persa")) 
    .add(new Filter("kind.anAssociation.attribute", "anything")); 
List<Cat> cats = dao.find(filters); 

Итак, рассмотрим использовать http://github.com/moesio/seimos

Смежные вопросы