- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个困扰我很长一段时间的问题,我也想出了一个解决方案,这里的问题是如何最好地实现它,所以如果您以前处理过这种情况,我正在寻求您的建议(很难在网络上找到任何关于这个主题的有用信息)。
3 层架构(富客户端,例如 Swing 或 Eclipse RCP 或 Android、具有服务层实现的 Web 应用程序、关系数据库)。我的模型是POJO(普通的旧式 Java 对象、具有 getter 和 setter 的纯数据容器),它们是持久的(我所有模型上的技术 ID)。
我经常处理聚合使用的大型模型,但需要有效地读取和传输。假设我有以下模型:
现在,当我列出或加载一篇文章时,我不想加载整个作者(用户),因为它暴露了太多的详细信息(密码哈希和盐),并携带了太多我在文章上下文中实际需要的数据(名字/姓氏和电子邮件)(名字/姓氏和电子邮件)。
一般来说:有时我需要模型的完整详细信息(在创建/编辑模型时,或在非常具体的情况下),但是当我在其他模型中聚合使用它们时,我宁愿使用简化的表单(如果我需要详细信息,我可以通过单独的请求加载它们)。
对于每个模型,我可以创建两个变体:一个具有完整 CRUD(创建、读取、更新、删除)的完整细节变体和一个简化只读变体,可以用作聚合关系中的代理。简化模型版本还包含详细版本的技术 ID,因此我可以根据需要获取它。
最佳答案
我无法将您的解决方案选项与我所知道的模式关联起来。但是稍后可以通过在您的服务之上引入一个非常薄的 API (Web API) 来满足您的要求。
它有两个部分,
阅读:正如您所提到的,您可能需要根据使用情况/权限将特定的数据项选择输送给消费者。这可以通过在传入的 GET 查询中指定一组方面来实现。
在此处查看示例,https://developer.linkedin.com/documents/people-search-api
写入:对于片段,使用PATCH操作。这将使您能够灵活地按字段更新。
总而言之,这为您提供了一个非常灵活的 API,并且在您的 API 下具有非常干净的域模型。如今,这是一种被广泛接受的方法。
希望有帮助。
关于java - 寻求建议: overview/detail representation of models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24591502/
我有一个 Python 字典 dict。想象一下这个简单的例子。字典: bin1:{apple,apple,cherry,cherry,cherry,banana,banana,avocado} bi
我在Google上搜索了规范表示的含义,然后发现文件太含糊了。谁能提供规范表示的快速解释,以及网站中典型表示攻击的一些典型漏洞是什么? 最佳答案 规范化是您接受输入(例如文件名或字符串)并将其转换为标
本文整理了Java中org.restlet.representation.WriterRepresentation类的一些代码示例,展示了WriterRepresentation类的具体用法。这些代码
这个问题已经有答案了: How to convert number to words in java (32 个回答) 已关闭10 年前。 我有一个列表 Integer从 1 到 100。如果我循环遍
我正在使用 Coin-or Linear Programming图书馆。我想构建一个 ClpPlusMinusOneMatrix .它的构造函数是: ClpPlusMinusOneMatrix (in
免责声明:我完全知道表示日期/时间的最佳方式是 Unix 时间戳或 PHP 的 DateTime 类和 Oracle 的DATE 数据类型。 顺便说一句,我想知道最适合存储时间 数据的数据类型是什么(
我已经编写了我的代码,但就我个人所知,我想知道如何对其进行建模。 我们开始吧:一个用户可以拥有多个配置文件,每个配置文件都与一个且唯一的应用程序相关联。配置文件定义了用户在应用程序中的权限:同一用户可
我想了解 Representable 的含义在 Haskell 中代表。定义 Representable endofunctors over the category of Haskell types
如何构建一个 API,其中相同的数据可以以不同的格式(RESTful 格式)请求。例如。 GET /person/ //get the details of resource 现在,根据客户端(浏
这是这个问题的更具体的变体:Mutate only focus of Store Comonad? ,这样做的好处是不要一次提出多个问题。 是否有兼容 Control.Lens 的镜头它允许我与 co
我一直在为 iOS 开发一个日历应用程序,这让我遇到了很多问题。 我正在使用本地通知进行提醒。存储事件日期、警报日期或其他内容的最佳方式是什么?我的意思是,问题是由时区差异等引起的。我将事件存储在核心
我正在构建一个网络 CMS,用户可以在其中为某些网站元素选择颜色。我想将所有颜色值转换为十六进制以避免任何进一步的格式化麻烦(“rgb(x,y,z)”或命名颜色)。我为此找到了一个很好的 JS 库。
我有像这个例子这样的简单代码: int main() { double i_3 = 4.1; // 8 bytes return 0; } 让我们用 -S 选项编译这个示例: g++ -S -
我正在尝试执行 POST 操作: 我的 Controller 是: @RestController @RequestMapping({"/contacts"}) public class Contac
我需要一个数据表,以便在由一些生成的数据增强的 WPF 数据网格中显示数据。但我还需要将数据从数据库加载到本地 C# 对象,因为表示数据的类会进行很多计算。 那什么更好呢?仅依赖于数据表?或者对象和数
我正在开发一个 Java Spring Boot 应用程序,我使用的是版本 2.1.5 RELEASE。就我而言,我还使用 DozerBeanMapper (5.4.0) 和 Lombok 以防万一这
我正在使用 Postgresql 和 PHP 5.3.x with PDO 来访问数据库。 我有这个 SQL 查询(精简版),需要填写一个 PDO 占位符: INSERT INTO t_article
根据 C11 WG14 draft version N1570 : The header declares several functions useful for classifying and
我正在构建一个网络 CMS,用户可以在其中为某些网站元素选择颜色。我想将所有颜色值转换为十六进制以避免任何进一步的格式化麻烦(“rgb(x,y,z)”或命名颜色)。我为此找到了一个很好的 JS 库。
在golang中,如何将字符串转换为二进制字符串?示例:'CC' 变为 10000111000011 最佳答案 这是一个简单的方法: func stringToBin(s string) (binSt
我是一名优秀的程序员,十分优秀!