首页
学习
活动
专区
圈层
工具
发布

SpringDataJPA笔记(1)-基础概念和注解

@Entity 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表。...uniqueConstraints 选项用于设置约束条件,通常不须设置 @MappedSuperclass 标注为@MappedSuperclass的类将不是一个完整的实体类,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中...比如可以重定义字段名或长度等属性,使用@AttributeOverride中的子属性@Column进行具体的定义 注意:对于其父类中标注@Lob注解的属性将不能重载,并且@AttributeOverride...@Column标注也可置于属性的getter方法之前 @Transient 表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性....,这可以通过OrderBy来实现,默认是按对象的主键升序排列 JSON相关注解 @JsonIgnoreProperties 此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,

5.2K20

OneCode核心概念解析——View(视图)

字段子域也称为子组件,在示例表单视图中,表单的每一个数据子项对应的就是一个字段子域。...(2),视图工厂运行原理 在领域工厂中,更多是将贫血性的基础实体对象进行聚合分类整理,形成更利于业务理解与操作的充血模型,并且通过在其接口模型上扩展注解的方式实现其低耦合应用。...这对低代码视图设计方面提出了更高的技术要求: 从业务架构方面能更好的来理解业务语言,诸如:根据业务实体,自动来匹配一张视图。当业务实体发生变更时,自动更新视图。...当业务实体的属性发生变化时自动匹配一种更适合用户交互的输入输出方式,如:预警信息显示,红色代表严重、黄色代表警告,绿色代表正常等等。...在OneCode中,通常会将一个视图分为三部分编译: (1)视图实体 视图实体中主要着重于视图实体以及其子对象的实体转换。

30810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SpringBoot注解最全详解(整合超详细版本)

    @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。...@MappedSuperclass 标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中 3....具体如下: (1) name属性:name属性定义了被标注字段在数据库表中所对应字段的名称 (2) unique属性:unique属性表示该字段是否为唯一标识,默认为false,如果表中有一个字段需要唯一标识...,状态的改变会引发不同的生命周期事件。

    5.2K10

    SpringBoot最全注解大全

    @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。...@MappedSuperclass 标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中 3....具体如下: (1) name属性:name属性定义了被标注字段在数据库表中所对应字段的名称 (2) unique属性:unique属性表示该字段是否为唯一标识,默认为false,如果表中有一个字段需要唯一标识...,状态的改变会引发不同的生命周期事件。

    6.4K31

    「查缺补漏」,DDD 核心概念梳理

    当单一实体(或值对象)不能实现时,领域服务就来进行聚合多个实体(或值对象),来实现复杂的业务逻辑。...当DO数据需要持久化时,先将DO转换为PO对象,由仓储实现服务完成数据库持久化操作。当DO需要构建和数据初始化时,仓储实现服务先从数据库获取PO对象,将PO转换为DO后,完成DO数据构建和初始化。...字段的值可以变。 实体是看得到、摸得着的实实在在的业务对象,实体具有业务属性、业务行为和业务逻辑。 实体特点 有 ID 标识,通过 ID 判断相等性,ID 在聚合内唯一。...依附于聚合根,生命周期由聚合根管理。实体一般会持久化,但是与数据库持久化对象不一定是一对一的关系。实体可以引用聚合内的聚合根、实体和值对象。...外部对象不能直接访问聚合内实体,需要先访问聚合根,再导航到聚合内部实体。 特点:聚合根是实体,有实体的特点,具有全局唯一标识,有独立的生命周期。

    1.4K20

    SpringBoot注解最全详解(整合超详细版本)

    @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。...标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中 @MappedSuperclass 标识的类不能再有@Entity或@Table注解...具体如下: name属性:name属性定义了被标注字段在数据库表中所对应字段的名称 unique属性:unique属性表示该字段是否为唯一标识,默认为false,如果表中有一个字段需要唯一标识,则既可以使用该标记...,实体的状态会随之改变,状态的改变会引发不同的生命周期事件。

    1.3K10

    SpringBoot2.x系列教程(八)SpringBoot常用注解汇总

    Spring Boot中会扫描启动类所在包下以及子包下的使用了以上注解的类。...@Table:当实体类与其映射的数据库表名不同名时需要使用@Table注解说明,该标注与@Entity注解并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。...@Column:用来标识实体类中属性与数据表中字段的对应关系,如果字段名与列名相同,则可以省略。 @Id:表示该属性为主键。 @GeneratedValue:为实体生成唯一标识的主键提供生成策略。...@Transient:表示该属性不进行数据库表的字段映射,ORM框架将忽略该属性。 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。...@JoinColumn:用来指定与所操作实体或实体集合相关联的数据库表中的列字段。一对一,本表中指向另一个表的外键;一对多,另一个表指向本表的外键。

    1.8K10

    熬夜整理的2W字DDD学习笔记

    其实很好理解,DDD 的研究方法与自然科学的研究方法类似。当人们在自然科学研究中遇到复杂问题时,通常的做法就是将问题一步一步地细分,再针对细分出来的问题域,逐个深入研究,探索和建立所有子域的知识体系。...当所有问题子域完成研究时,我们就建立了全部领域的完整知识体系了。 在领域不断划分的过程中,领域会细分为不同的子域,子域可以根据自身重要性和功能属性划分为三类子域,它们分别是:核心域、通用域和支撑域。...以下是一些常用的创建实体身份标识的策略,从简单到复杂依次为: 用户提供一个或多个初始唯一值作为程序输入,程序应该保证这些初始值是唯 一的。...当 DO 数据需要持久化时,仓储服务会将 DO 转换为 PO 对象,完成数据库持久化操作。...当 DO 数据需要初始化时,仓储服务从数据库获取数据形成 PO 对象,并将 PO 转换为 DO,完成数据初始化。大多数情况下 PO 和 DO 是一一对应的。

    78311

    Spring data 相关注解

    此篇记录大部分自己学习中用到的Spring data 注解,附带记录了一些业务中经常用到的其他注解 ---- @JsonIgnoreProperties 类注解 作用是json序列化时将Java...jsonplugin通过java的反射机制将pojo转换成json,会把hibernateLazyInitializer也拿出来操作,但是hibernateLazyInitializer无法由反射得到,...@MappedSuperclass标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够隐射在其子类对用的数据库表中 @MappedSuperclass标识得嘞不能再有@Entity...使用该注释,您不必在每次更新用户实体时显式更新相应的属性。 preUpdate不允许您更改您的实体。 您只能使用传递给事件的计算的更改集来修改原始字段值。...当你在执行各种持久化方法的时候,实体的状态会随之改变,状态的改变会引发不同的生命周期事件。

    2.5K20

    springBoot注解与分析

    如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic。...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响...当你在执行各种持久化方法的时候,实体的状态会随之改变,状态的改变会引发不同的生命周期事件。...一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略 @Column:通过@Column注解设置,包含的设置如下 name:数据库表字段名 unique:是否唯一...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响

    1.5K10

    【org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist】

    在Hibernate中,当一个实体对象从会话(Session)中取出并关闭了该会话后,该实体就会变成分离状态,此时再尝试对其进行更新或保存操作将会抛出PersistentObjectException异常...可以使用EntityManager.merge()方法将分离的实体合并回持久层上下文,这样就能对它进行更新和保存操作。...现在可以安全地保存 2.确保实体始终关联于Session: 在整个业务逻辑处理过程中,确保实体始终保持与Hibernate Session的关联状态,避免过早关闭Session或者使实体脱离Session...如果存在这种情况,需要调整代码逻辑以正确处理实体对象的状态。 4.级联策略(Cascade): 检查你的实体类之间的关系映射,尤其是涉及到级联操作的地方,确认是否因为错误的级联策略导致了此问题。...例如,如果你不希望在保存某个实体时自动持久化其关联的Data,则需确保相关映射注解如@OneToMany或@OneToOne中的cascade属性设置正确

    26310

    SpringBoot 注解最全详解 (整合超详细版本)

    @Transient:表示该属性并非一个到数据库表的字段的映射, ORM 框架将忽略该属性。...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是 json 序列化时将 Java bean 中的一些属性忽略掉, 序列化和反序列化都受影响...@MappedSuperclass 标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中 3....具体如下: - name 属性:name 属性定义了被标注字段在数据库表中所对应字段的名称 - unique 属性:unique 属性表示该字段是否为唯一标识,默认为 false,如果表中有一个字段需要唯一标识...,实体的状态会随之改变,状态的改变会引发不同的生命周期事件。

    1.2K40

    后端必备:常用注解总结!

    @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。...,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中 @MappedSuperclass 标识的类不能再有@Entity或@Table注解 @Column: 1.当实体的属性与其映射的数据库表的列不同名时需要使用...具体如下: name属性:name属性定义了被标注字段在数据库表中所对应字段的名称 unique属性:unique属性表示该字段是否为唯一标识,默认为false,如果表中有一个字段需要唯一标识,则既可以使用该标记...,状态的改变会引发不同的生命周期事件。

    1.1K40

    SpringBoot注解最全详解

    @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。...@MappedSuperclass 标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中 3....具体如下: 1 name属性:name属性定义了被标注字段在数据库表中所对应字段的名称 2 unique属性:unique属性表示该字段是否为唯一标识,默认为false,如果表中有一个字段需要唯一标识...当你在执行各种持久化方法的时候,实体的状态会随之改变,状态的改变会引发不同的生命周期事件。

    1.2K20

    SpringBoot注解最全详解

    @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。...@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式 @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。...@MappedSuperclass 标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中 3....具体如下: 1 name属性:name属性定义了被标注字段在数据库表中所对应字段的名称 2 unique属性:unique属性表示该字段是否为唯一标识,默认为false,如果表中有一个字段需要唯一标识...当你在执行各种持久化方法的时候,实体的状态会随之改变,状态的改变会引发不同的生命周期事件。

    1.5K20

    DDD领域驱动设计实战(三)-深入理解实体

    MVC开发人员总将关注点放在数据,而非领域。因为在软件开发中,DB占据主导地位。他们首先考虑数据的属性(即表的字段)和关联关系(外键关联),而非富有行为的领域概念。...一个实体是个唯一的东西,可在一段时间内持续变化。这些对象重要的不是属性,而是其延续性和标识,会跨越甚至超出软件的生命周期。...比如将关系型DB用于对象持久化时,这些副作用将泄漏到领域模型:创建前需考虑标识生成的时间、关系型数据的引用标识和ORM在标识创建过程中的作用等,还要考虑如何保证唯一标识的稳定性。...当实体的public方法自委派给该setter方法时,该方法将检查username属性,看是否已被赋值。若是,表明该User对象的领域标识已经存在,程序将抛异常。...5 创建实体 新建一个实体时,我们总期望通过构造器就能初始化足够多的实体状态,因为这样更容易通过各种条件查找到该实体。 在使用及早生成唯一标识的策略时,构造器至少需接受唯一标识参数。

    2.1K22

    DDD领域驱动设计实战(03)-深入理解实体

    MVC开发人员总将关注点放在数据,而非领域。因为在软件开发中,DB占据主导地位。他们首先考虑数据的属性(即表的字段)和关联关系(外键关联),而非富有行为的领域概念。...一个实体是个唯一的东西,可在一段时间内持续变化。这些对象重要的不是属性,而是其延续性和标识,会跨越甚至超出软件的生命周期。...比如将关系型DB用于对象持久化时,这些副作用将泄漏到领域模型:创建前需考虑标识生成的时间、关系型数据的引用标识和ORM在标识创建过程中的作用等,还要考虑如何保证唯一标识的稳定性。...当实体的public方法自委派给该setter方法时,该方法将检查username属性,看是否已被赋值。若是,表明该User对象的领域标识已经存在,程序将抛异常。...5 创建实体 新建一个实体时,我们总期望通过构造器就能初始化足够多的实体状态,因为这样更容易通过各种条件查找到该实体。 在使用及早生成唯一标识的策略时,构造器至少需接受唯一标识参数。

    1.1K20

    应用对持久数据的管理 | 从开发角度看应用架构7

    关系数据库是企业应用程序用来保存数据以供重用的最常见的数据存储之一。 Java EE企业应用程序中的业务数据被定义为Java对象。 这些对象保存在相应的数据库表中。...主键字段用于将实体实例映射到数据库表中的行。 所有非瞬态属性都映射到数据库表中的字段。 在数据库表中,entity的每个持久实例都有一个持久性标识,该标识在表中唯一标识。...orm.xml包含将Java类声明为实体所需的所有配置细节。 @Table @Table注解用于指定实体类和表之间的映射。 当实体类的名称与数据库中的表名不同时使用它。...五、ID的生成 每个实体实例都映射到数据库表中的一行。 表格中的每一行都是唯一的,并由唯一的ID标识为持久实体标识。 永久实体标识是从主键字段生成的。 主键字段在每个实体类中都是必需的。...实体管理器在一组管理实体实例中工作。 这些被管实体实例被称为实体管理器的持久性上下文。 您可以将持久性上下文视为持久性单元的唯一实例。

    3.3K40

    Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十二

    主键可以使用任何单一的简单 Cassandra 类型或映射的用户定义类型。不支持集合类型的主键。 简单的主键 一个简单的主键由实体类中的一个分区键字段组成。...@ReadOnlyProperty:应用于字段级别以将属性标记为只读。实体绑定的插入和更新语句不包括此属性。 @Column: 应用于现场。...启用映射到表或用户定义类型的类型的嵌入对象使用。嵌入对象的属性被展平到其父对象的结构中。 @Indexed: 应用于现场。描述要在会话初始化时创建的索引。 @SASI: 应用于现场。...@Version:应用于字段级别用于乐观锁定并检查保存操作的修改。初始值是zero每次更新时自动触发的值。...会话初始化时的索引创建可能会对应用程序启动产生严重的性能影响。

    2.5K40

    一篇 JPA 总结

    ,指出该Java 类为实体类,将映射到指定的数据库表。...**@Table** 当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用 **@id** @Id 标注用于声明一个实体类的属性映射为数据库的主键列...表示该属性并非一个到数据库表的字段的映射,ORM 框架将忽略该属性 如果一个属性并非数据库表的字段映射,就务必将其标识为 @Transient,否则ORM 框架默认为其注解 @Basic,例如工具方法不需要映射...第二个重载方法和上述的方法唯一不同的是不需要传入第二个参数 ?...实体映射 ? ? 方法测试 保存数据(先保存不维护关联关系的一端,否则会多出 UPDATE 语句) ? 使用 IDEA 反向生成实体(双向一对一) ?

    6.7K20
    领券