Java 冬眠pojo的过度暴露

Java 冬眠pojo的过度暴露,java,hibernate,design-patterns,dto,Java,Hibernate,Design Patterns,Dto,我最近开始阅读Hibernate,所以我的知识非常原始。 我在某个地方读到,您不应该直接在应用程序上公开hibernate pojo类,而应该在应用程序上创建表示pojo类的类。它就像自定义类一样,只使用Pojo类的部分或全部字段 有没有人可以解释一下,在应用程序中,我们如何阻止POJO的过度暴露,或者使用POJO和从服务器返回的自定义类的正确方法是什么 最好使用必填字段来设置自己的POJO类。。。还可以编写转换器将数据从hibernate POJO转换为您的POJO 注意:-如果您正在评估Hi

我最近开始阅读Hibernate,所以我的知识非常原始。 我在某个地方读到,您不应该直接在应用程序上公开hibernate pojo类,而应该在应用程序上创建表示pojo类的类。它就像自定义类一样,只使用Pojo类的部分或全部字段


有没有人可以解释一下,在应用程序中,我们如何阻止POJO的过度暴露,或者使用POJO和从服务器返回的自定义类的正确方法是什么

最好使用必填字段来设置自己的POJO类。。。还可以编写转换器将数据从hibernate POJO转换为您的POJO

注意:-如果您正在评估Hibernate,请查看JOOQ

明天是一个没有ORM的世界


一般来说,我会说这取决于您的需要,但如果您想做得好,我建议您为DTO创建自定义类,这些类只包含您需要的信息。我已经写了一篇关于为什么使用实体可能导致问题以及如何使用Blaze持久性实体视图实现DTO来解决问题的文章。这可能有助于您理解其中的含义。

听起来您指的是DTO“模式”。是的,有点类似。但我的问题是,这有必要吗?我们不能直接向客户介绍pojo。好吧,你会发现很多关于这方面的讨论,你必须自己做出决定。我的偏好是将实体用作“适当的”域对象:它们恰好是持久性的事实既不存在也不存在。根据我的经验,DTO导致——实体或DTO都不会有任何行为。这是一种观点,而不是答案。你可以试着用你认为是这种方法的好处来考虑它,因为它必须创建和维护不仅是DTOS而且是制图者。@ Alan Hay,这只是我的建议老板。我只是让他看看乔克。我们通过类似JOOQ的技术获得的自由和灵活性并不是在冬眠中。。。。。即使在Java8流之后。。。你还相信ORM工具有一席之地吗。。。?