saveEntity、 insertEntity与updateEntity构建的使用细节

菜鸟初级自学记录性质文档
com.eos.foundation.database.DatabaseUtil.saveEntity
com.eos.foundation.database.DatabaseUtil.insertEntity
com.eos.foundation.database.DatabaseUtil.updateEntity
saveEntity、 insertEntity与updateEntity的应用场景及区别对比
1、saveEntity用来保存一条记录到数据库。该构件与inserEntity有所不同:如果数据库没有相同主键的记录则直接插入到数据库对应的表中,否则只是修改已经存在的相同主键的记录的数据。可以简单理解为,它既可用于insert场景,也可用于update场景。
主要针对上层应用,兼容insertEntity和updateEntity,模糊处理保存用户数据。适用于未知操作类型和未知数据库中是否已存在相同主键的数据。倾向于最终目标,用户数据保存入库,弱化或者不作为主要关注数据操作记录或者数据动态变化,会破坏过程数据,造成掩盖主键冲突的问题。当主键已经存在,会默认修改原来的数据,造成数据覆盖和丢失,调试也很难找到问题。
2、insertEntity用来把一个SDO对象的值保存到数据库相应的实体表中。
主要针对相对saveEntity底层一些的快速插入数据,需要明确操作类型为插入数据,需要提供不冲突的主键,主键冲突或为null会抛出异常。性能稍高于saveEntity。
3、updateEntity用来更新一条数据库记录,更新时根据实体定义的主键属性的值更新。没有主键不能更新。
主要针对相对saveEntity底层一些的快速更新数据,需要明确操作类型为更新数据,需要提供明确已存在数据库中的主键,主键为空或不存在与数据库中会抛出异常,性能稍高于saveEntity。
4、总结:尽量避免使用saveEntity,saveEntity要先查询是否有数据,有数据时使用updateEntity,没有时使用insertEntity,会导致性能下降,数据量比较太的时候会导致性能下降较高;建议直接使用insertEntity(如记录DB日志,肯定是插入新操作,用insertEntity就可以了),和updateEntity(如果确认是修改操作)。
文章参考http://doc.primeton.com/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Spring Data Elasticsearch 中,可以使用 `ElasticsearchTemplate` 类进行 Elasticsearch 的插入操作。以下是使用 `ElasticsearchTemplate` 进行插入操作的示例代码: 1. 添加 Elasticsearch 相关依赖:在您的项目的构建文件(如 Maven 的 pom.xml 或 Gradle 的 build.gradle)中,添加适用于 Elasticsearch 的 Spring Data Elasticsearch 依赖。例如,对于 Maven,您可以添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> ``` 2. 创建实体类:创建一个用于映射 Elasticsearch 文档的实体类。例如: ```java import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; @Document(indexName = "my_index", type = "my_type") public class MyEntity { @Id private String id; private String field1; private String field2; // getter and setter methods } ``` 3. 插入操作代码:使用 `ElasticsearchTemplate` 进行插入操作。例如: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; import org.springframework.stereotype.Service; @Service public class MyEntityService { @Autowired private ElasticsearchTemplate elasticsearchTemplate; public void saveEntity(MyEntity entity) { elasticsearchTemplate.index(entity); elasticsearchTemplate.refresh(MyEntity.class); } } ``` 4. 调用插入方法:在您的代码中,创建一个 `MyEntity` 对象,设置相应的字段值,然后调用 `saveEntity` 方法进行插入操作。例如: ```java MyEntity entity = new MyEntity(); entity.setId("1"); entity.setField1("value1"); entity.setField2("value2"); myEntityService.saveEntity(entity); ``` 通过以上步骤,您可以使用 `ElasticsearchTemplate` 进行 Elasticsearch 的插入操作。请根据实际需求进行相应的调整和扩展。请注意,`ElasticsearchTemplate` 在 Spring Data Elasticsearch 4.x 版本中已被弃用,建议使用 `ElasticsearchRepository` 进行数据操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值