首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

spring data rest中POST的只读属性

在Spring Data REST中,POST请求用于创建资源。然而,有时候我们希望某些属性在创建后变为只读,即不能通过POST请求进行修改。这可以通过以下步骤实现:

  1. 使用@ReadOnlyProperty注解:在实体类中,将希望设置为只读属性的字段或方法标记为@ReadOnlyProperty注解。这将告诉Spring Data REST在POST请求中忽略这些属性。
  2. 使用@HandleBeforeCreate事件:创建一个事件处理器,在资源创建之前拦截请求并设置只读属性的值。可以通过实现org.springframework.data.rest.core.annotation.HandleBeforeCreate接口或使用@RepositoryEventHandler注解来定义事件处理器。

下面是一个示例:

代码语言:txt
复制
@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    @ReadOnlyProperty
    private String readOnlyProperty;

    // getters and setters
}

@RepositoryEventHandler
public class UserEventHandler {

    @HandleBeforeCreate
    public void handleUserCreate(User user) {
        user.setReadOnlyProperty("default value");
    }
}

在上面的示例中,readOnlyProperty被标记为只读属性,并且在创建用户之前,handleUserCreate方法会被调用来设置只读属性的默认值。

这样,当使用POST请求创建用户时,readOnlyProperty将被忽略,并且在数据库中将被设置为默认值。

推荐的腾讯云相关产品:腾讯云数据库(TencentDB),腾讯云函数(SCF),腾讯云容器服务(TKE)

更多关于Spring Data REST的信息,请参考腾讯云文档:Spring Data REST

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

TypeScript可选属性只读属性

可选属性 接口里属性不全都是必需。 有些是只在某些条件下存在,或者根本不存在。 例如给函数传入参数对象只有部分属性赋值了。...带有可选属性接口与普通接口定义差不多,只是在可选属性名字定义后面加一个?符号。如下所示: interface Person { name: string; age?...: number; } 上面的例子Person对象名字(name)是不可选,age和gender是可选只读属性 顾名思义就是这个属性是不可写,对象属性只能在对象刚刚创建时候修改其值。...你可以在属性名前用 readonly来指定只读属性,如下所示: interface User { readonly loginName: string; password: string...readonly vs const 最简单判断该用readonly还是const方法是看要把它做为变量使用还是做为一个属性。 做为变量使用的话用const,若做为属性则使用readonly。

2.8K70

spring之事务其它属性(隔离级别、回滚、只读、过期)(四)

2.使用 isolation 指定事务隔离级别, 最常用取值为 READ_COMMITTED。 3.默认情况下 Spring 声明式事务对所有的运行时异常进行回滚....也可以通过对应属性进行设置. 通常情况下取默认值即可. 。 4.使用 readOnly 指定事务是否为只读. 表示这个事务只读取数据但不更新数据, 这样可以帮助数据库引擎优化事务....若真的是一个只读取数据库值方法, 应设置 readOnly=true。 5.使用 timeout 指定强制回滚之前事务可以占用时间。...,指定遇到UserAccountException异常后不回滚,我们对testBookShopService进行测试,即使我们加上了Transactional注解,但遇到余额不足时不进行回滚,即数据库1001...设置timeout指定强制回滚时间。我们在purchase里面加上休眠,此时休眠2s<3s。 并将数据库数据重新设置为: ? ? 此时我们测试testBookShopService,结果为: ?

67330

HTML自定义数据属性data-*

data-* 全局属性 是一类被称为自定义数据属性属性,它赋予我们在所有 HTML 元素上嵌入自定义数据属性能力,并可以通过脚本(一般指JavaScript) 与 HTML 之间进行专有数据交换。...定义和用法 data-* 属性用于存储页面或应用程序私有自定义数据。 data-* 属性赋予我们在所有 HTML 元素上嵌入自定义 data 属性能力。...存储(自定义)数据能够被页面的 JavaScript 利用,以创建更好用户体验(不进行 Ajax 调用或服务器端数据库查询)。...data-* 属性包括两部分: ①属性名不应该包含任何大写字母,并且在前缀 “data-” 之后必须有至少一个字符。 ②属性值可以是任意字符串。...注释:用户代理会完全忽略前缀为 “data-” 自定义属性

1.1K20

Ajax请求($.ajax())data属性传参数形式

/js/jquery.min.js"> 实现Ajax提交数据进行请求,其中data属性设置传参方法有好几种形式,如下: //第一种写法(把参数拼接在URLdata属性设为空...name="+name+"&user="+user, type: "POST", data:{}, dataType: "json...,调用JQueryserialize()方法序列化为字符串) 前提是:发送请求必须是一个form表单,而且表单内要做参数标签必须具有name属性,因为name属性会被认为请求参数名 //代码如下...function getFormInfo(){ var params=$('#login').serialize(); //把id为loginform表单里参数自动封装为参数传递...} }); } //第六种写法(既有全部直接获取表单数据又有单独出来数据) function getFormInfo(){

3.7K20

data自定义属性在jQuery用法

(1)如果在HTML文档设置data-自定义属性单个字符串名称属性若有大写值,在js文件获取时只能用小写形式获取。...如: HTMLdata-Role,获取当时为$(node).data(“role”); (2)如果在HTML设置data-role和data-Role是一样,html属性不区分大小写。...然后我们从验证结果可以看出,js只会找到第一个与其匹配就直接返回。 (3)如果用js来设置data属性,那么如果你定义是大写格式,则访问也必须是大写形式。...最后讲一下data()和attr()区别: (1) 是否需要传参: data() 可以不传入参数,这使获得是一个js对象,就算你在html没有设置任何data自定义属性时,获得也是一个对象。...(4)data-attribute属性会在页面初始化时候放到jQuery对象,被缓存起来,而attr方法却不会。

2.9K20

快速学习-Spring Data JPA多表查询

第5章 Spring Data JPA多表查询 5.1 对象导航查询 对象图导航检索方式是根据已经加载对象,导航到他关联对象。它利用类与类之间关系来检索对象。...例如:我们通过ID查询方式查出一个客户,可以调用Customer类getLinkMans()方法来获取该客户所有联系人。对象导航查询使用要求是:两个对象之间必须存在关联关系。...配置方式: /** * 在客户对象@OneToMany注解添加fetch属性 * FetchType.EAGER :立即加载 * FetchType.LAZY :延迟加载...通过配置方式来设定,只要查询从表实体,就把主表实体对象同时查出来 配置方式 /** * 在联系人对象@ManyToOne注解添加fetch属性 * FetchType.EAGER :...> query, CriteriaBuilder cb) { //Join代表链接查询,通过root对象获取 //创建过程,第一个参数为关联对象属性名称,第二个参数为连接查询方式

2.3K10

Spring依赖注入滥用@Data导致@Qualifier无效

@Data注解是一个方便工具,用于自动生成JavaBean一些常见方法,例如getter、setter和toString等。...通常我会在实体类中会使用@Data注解; 在SpringBean确实没有用过; 今天项目突然出现一个@Data滥用导致服务表现不符合逾期问题,让我认为@Data不应该在Spring依赖注入中进行使用...容器在对Bean进行查找时,提供了两种方式: 根据类来查找根据名字来查找在Spring很多场景, Bean时单例,并且相同Class只会创建一个; 但是有时候相同Bean则需要区分场景, 常见有...注解在Bean中使用@Data注解,尤其是结合final关键字时,lombok会对该字段放到构造器,从而实现了构造器注入。...; 所以上述代码注解无效, 注入是PrimaryBean总结避免在Bean滥用@Data注解.

16910

IRIS Chronicles Data Type(数据类型)字段型属性

IRIS 数据类型比较少,也就 4 个数据类型:字符串,数字,时间,分类。在这里分类有点像我们下拉选择框,其实对应 Java 或者其语言中数据来说可以说是枚举类型。...只是 IRIS 枚举类型是定义在数据库,并且是事先定义好。String这个好说,就是字符串。...因为 M 语言限制,所以 String 字符串可以存储字符最多为 32KB、Number数字,这个数字可以是整数也可以是浮点数。...这个是系统自动生成系统时间,通常不需要我们认为手动输入。Category 分类这个就是我们说分类了,在这个分类我们可以想象为数据库预先存储枚举类型。比如说人性别,我们通常会预定义好。...https://www.isharkfly.com/t/iris-chronicles-data-type/15559

7710

Intent四个重要属性——Action、Data、Category、Extras

https://blog.csdn.net/gdutxiaoxu/article/details/49389193 Intent四个重要属性——Action、Data、Category、Extras...通过其自带属性,其实可以方便完成很多较为复杂操作。例如直接调用拨号功能、直接自动调用合适程序打开不同类型文件等等。诸如此类,都可以通过设置Intent属性来完成。   ...Intent主要有以下四个重要属性,它们分别为: 一、 Action: Action属性值为一个字符串,它代表了系统已经定义了一系列常用动作。...ACTION_DIAL:打开系统默认拨号程序,如果Data设置了电话号码,则自动在拨号程序输入此号码。     ACTION_CALL:直接呼叫Data中所带号码。     ...CATEGORY_GADGET:设置该组件可以内嵌到另外Activity。 四、Extras:   Extras属性主要用于传递目标组件所需要额外数据。

81020

Spring认证中国教育管理中心-Spring Data REST框架教程二

原标题:Spring认证中国教育管理中心-Spring Data REST框架教程二(Spring中国教育管理中心) 4.2.馆藏资源 Spring Data REST 公开了一个以导出存储库正在处理域类非大写复数版本命名集合资源...支持媒体类型 该POST方法支持以下媒体类型: 应用程序/hal+json 应用程序/json 4.3.物品资源 Spring Data REST 将单个集合项资源公开为集合资源子资源。...4.4.协会资源 Spring Data REST 为每个项目资源具有的每个关联公开每个项目资源子资源。资源名称和路径默认为关联属性名称,可以在关联属性上使用自定义@RestResource。...分页和排序 本节记录了 Spring Data RESTSpring Data Repository 分页和排序抽象使用。...5.1.分页 Spring Data REST 不是从大型结果集中返回所有内容,而是识别一些影响页面大小和起始页码 URL 参数。

1.8K10
领券