我们的存储库实体具有由应用程序分配的审计/日志属性,如(createdDate,updatedDate ...),并且应该是用户的只读属性。关于Jackson showed this feature is not supported的一点点研究(或者是吗?)。想知道特别提款权在这里是否有任何帮助?
更新1:添加实体以获取详细信息:
@Document(collection="employees")
public class Employee {
@Id
private String id;
private firstName;
private lastName;
//read-only attribute. initially assigned by application and should not be changed
private Date createdDate;
//read-only attribute. initially assigned by application and should not be changed
private Employee createdBy;
//getters setters truncated....
}
答案 0 :(得分:1)
org.springframework.data.annotation.ReadOnlyProperty添加在spring-data-commons 1.9.0中。
这符合目的。请参考:
答案 1 :(得分:0)
将spring-data-rest与spring-data-jpa一起使用,我使用jpa @Column(updatable = false)取得了成功。
看起来你没有使用JPA(@Document),你的持久性框架是否有一个注释来指示一个只读字段?
此外,拥有一个吸气剂而不是一个吸气剂可能是这个难题的一部分。在我的例子中,spring-data-jpa AuditingEntityListener设置了字段,因此我不需要在应用程序代码中使用setter。
import javax.persistence.Column;
import javax.persistence.MappedSuperclass;
import org.joda.time.DateTime;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
@MappedSuperclass
public abstract class AuditedEntity extends AuditedUpdateEntity {
@CreatedDate
@Column(updatable = false)
private DateTime createdTs;
@CreatedBy
@Column(updatable = false)
private String createdBy;
public String getCreatedBy() {
return createdBy;
}
public DateTime getCreatedTs() {
return createdTs;
}
}