【发布时间】:2012-08-27 19:13:26
【问题描述】:
在 CRUD 操作中返回对象的最佳实践是什么(如果有的话)。就我而言,对于 Java。
例如,对于 CREATE,我想返回对象,它的 ID...?
【问题讨论】:
-
CRUD 应用程序的“最佳实践”当然很重要,但当您的 CRUD 应用程序遇到错误时,它并不总是像“最佳实践”那么重要......
在 CRUD 操作中返回对象的最佳实践是什么(如果有的话)。就我而言,对于 Java。
例如,对于 CREATE,我想返回对象,它的 ID...?
【问题讨论】:
create - 创建的对象。我知道,我知道它通常是同一个对象,但它既方便又优雅。
update - 也返回相同的对象。在某些框架中,例如 JPA 更新的对象可以是不同的实例,而不是提供的实例。
restore - 显然是您要恢复的对象。如果您正在恢复列表,请考虑实现分页 - 获取偏移量/最大值并返回包含在 Page 对象中的列表以及一些额外的元数据,例如条目总数。
删除 - 这里没有什么可以返回的,void。
【讨论】:
void,如果找不到则抛出异常。如果您的服务接受可能不存在的对象,boolean 很好 (similar to Java collections)。
实际上并没有一套明确的最佳实践,但这里列出了我如何使用 CRUD procs:
创建:不传入数据或传入一些数据(例如,为新用户提供姓名、地址、电子邮件地址等)并获取新插入记录的新对象或主键。
读取:传递可以识别单个记录或一组记录的内容(例如,很可能是一个主键,如一个人的 id 或电子邮件地址)。
更新:传入所有要更新的数据。如果不更新数据,请确保允许传入空值,如果值为空,则跳过更新该列。
删除:传入一个标识符(例如,一个人的 id 或电子邮件地址)并且不返回任何内容 (void) 或指示删除成功的布尔值。
【讨论】: