typeorm插入之save与insert
发布日期:2021-05-28 16:24:07 浏览次数:33 分类:精选文章

本文共 527 字,大约阅读时间需要 1 分钟。

TypeORM的save和insert方法有明显的区别,主要体现在返回结果和对原实体的影响上。以下是优化后的详细分析:

  • 插入一个新的对象

    • save方法:返回新的保存后对象,包含自动生成的id,原实体对象上会出现自动生成的id。
    • 示例:使用save方法插入一个新用户,返回包含id的实体对象,数据库生成主键id。
  • 插入一个已存在数据库实体

    • save方法:如果已存在的实体没有自动生成的主键,需手动指定主键避免错误。
    • 示例:在未设置自动生成主键的情况下,重复保存同一实体不会报错,效果相同,数据库不受影响。
    • 注意:无论是否自动生成主键,save方法不会触发数据库重复记录错误。
  • 插入一个更改对象

    • save方法:返回修改后的实体对象,触发数据库更新操作。修改后可以再次使用save进行更新。
    • 示例:首次保存后修改属性值再次使用save,会更新数据库记录,返回最新实体。
  • save方法的判断机制

    • 主键自动生成:save根据现有主键判断是否更新或插入。
    • 主键未自动生成:save仅根据主键判断不能基于其他约束判断,可能导致插入错误。
  • 总结:save方法在主键自生成的情况下更能准确判断插入或更新,而非自生成主键的情况需要谨慎处理,确保唯一约束不会导致意外插入错误。

    上一篇:.NET应用加载容器KGlue
    下一篇:typeorm之subscriber

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年04月20日 17时44分42秒