使用 Spring Data REST 和 Spring Data Mongo,我希望使域字段(在我的示例中username为域字段)在创建时可插入,但在更新时不可更新。换句话说,相当于 JPA @Column(insertable = true, updatable = false)。User
我尝试了几种方法但不起作用。在我的github项目中,域类和存储库放在/src/main/java/*/*/User.java和UserRepository.java中。测试放在/src/test/java/*/*UserTest.java 中。
保存到数据库时该字段不可插入。请参阅包readonlyproperty和transient_项目中的内容。
通过 POST 请求创建时,该字段不可插入,因为初始化对象时会忽略 JSON 属性。jsonpropertyreadonly请参阅项目中的包。
username如果PUT 或 PATCH 请求的 json 正文中包含不可更新的字段,并且username值发生更改,username则会更新,这是意外的。jsoncreator请参阅项目中的包。
同3。参见nosetter项目中的package。
spring.jackson.deserialization.fail-on-ignored-properties=false
spring.jackson.deserialization.fail-on-unknown-properties=false
spring.jackson.mapper.infer-property-mutators=false
Run Code Online (Sandbox Code Playgroud)
没有帮助
ObjectMapper.readerFor(Class)来启动一个新对象ObjectMapper.readerForUpdating(objectToUpdate).readValue(json) …根据文档,字符串的标志“0”被忽略
'0' 用前导零而不是空格填充;对于数字,这会移动符号后面的填充;忽略字符串、字节切片和字节数组
但在下面的代码中不会忽略标志“0”。医生有错吗?还是我误解了它?
package main
import "fmt"
func main() {
fmt.Printf("%05s", "abc")
// print 00abc
}
Run Code Online (Sandbox Code Playgroud)