2015-04-23 2 views
1

Ну, я недавно начал читать Hibernate, поэтому мои знания очень сырые. Я где-то читал, что вы не должны открывать свои классы hibernate pojo непосредственно в своем приложении, а вы должны создавать классы, которые представляют классы Pojo в вашем приложении. Это похоже на пользовательские классы, которые используют только некоторые или все поля классов Pojo.Свыше разоблачения hibernate pojo

Может ли кто-нибудь поставить на это какой-то свет, касающийся того, как в приложении мы можем остановить чрезмерную экспозицию Pojos или что это правильный способ использования Pojos и пользовательских классов, которые возвращаются с сервера.

+0

Похоже, что вы имеете в виду DTO «Pattern». http://programmers.stackexchange.com/questions/171457/what-is-the-point-of-using-dto-data-transfer-objects –

+0

да что-то похожее на это. Но мой вопрос: нужна ли бифуркация? не можем ли мы использовать pojo непосредственно на клиенте. – annonymous

+1

Ну, вы найдете много дискуссий по этому поводу и должны будете составить свой собственный разум. Мои предпочтения состоят в том, чтобы использовать Entities как «правильные» объекты домена: тот факт, что они просто настойчивы, ни здесь, ни там. По моему опыту DTO ведут к -http: //www.martinfowler.com/bliki/AnemicDomainModel.html - ни у Entity, ни у DTO не будет никакого поведения. –

ответ

0

Лучше вы правы своими классами POJO с обязательными полями ... А также пишите переводчики, чтобы переводить данные из hibernate POJOS вам Pojos.

Примечание: - Если вы оцениваете Hibernate для чего-то, посмотрите на JOOQ .....

Завтра мир с вне ORMss ........

http://www.jooq.org/doc/3.6/manual-single-page/

+0

Это мнение, а не ответ. Вы могли бы попробовать отдать это за то, что вы считаете воспринятыми преимуществами этого подхода, учитывая накладные расходы на создание и обслуживание не только DTO, но также и картографов. –

+0

@Alan Hay Это только мое предложение босса .. Я только попросил его взглянуть на JOOQ. Свобода и гибкость, которые мы получаем с помощью технологии JOOQ, не в Hibernates ..... Даже после Java 8 потоков ... вы все еще верите, что инструменты ORM имеют место ...? –

0

В целом, я бы сказал, что это зависит от ваших потребностей, но если вы хотите сделать это правильно, я предлагаю вам создать пользовательские классы для ваших DTO, которые содержат только необходимую информацию. Я написал article о том, почему использование сущностей может привести к проблемам и как вы можете реализовать DTO с объектами представления Blaze-Persistence, чтобы решить ваши проблемы. Это может помочь вам понять последствия.

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