关于Po

作者: 一个骚骚的码农 | 来源:发表于2021-09-07 15:18 被阅读0次

    背景

    l 用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO。

    l 展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。

    l 服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。

    l 服务层把DO转换为持久层对应的PO(可以使用ORM工具,也可以不用),调用持久层的持久化方法,把PO传递给它,完成持久化操作。

    l 对于一个逆向操作,如读取数据,也是用类似的方式转换和传递,

    注解

    @Entity注释指名这是一个实体Bean
    @Table注释指定了Entity所要映射带数据库表,其中@Table.name()用来指定映射表的表名。
    如果缺省@Table注释,系统默认采用类名作为映射表的表名。实体Bean的每个实例代表数据表中的一行数据,行中的一列对应实例中的一个属性。
    @Column注释定义了将成员属性映射到关系表中的哪一列和该列的结构信息,属性如下:
    1)name:映射的列名。如:映射tbl_user表的name列,可以在name属性的上面或getName方法上面加入;
    2)unique:是否唯一;
    3)nullable:是否允许为空;
    4)length:对于字符型列,length属性指定列的最大字符长度;
    5)insertable:是否允许插入;
    6)updatetable:是否允许更新;
    7)columnDefinition:定义建表时创建此列的DDL;
    8)secondaryTable:从表名。如果此列不建在主表上(默认是主表),该属性定义该列所在从表的名字。

    @Id注释指定表的主键,它可以有多种生成方式:
    1)TABLE:容器指定用底层的数据表确保唯一;
    2)SEQUENCE:使用数据库德SEQUENCE列莱保证唯一(Oracle数据库通过序列来生成唯一ID);
    3)IDENTITY:使用数据库的IDENTITY列莱保证唯一;
    4)AUTO:由容器挑选一个合适的方式来保证唯一;
    5)NONE:容器不负责主键的生成,由程序来完成。

    @GeneratedValue注释定义了标识字段生成方式。
    @Temporal注释用来指定java.util.Date或java.util.Calender属性与数据库类型date、time或timestamp中的那一种类型进行映射。
    @Temporal(value=TemporalType.TIME)
    @SequenceGenerator(name = "SEQ_SOC_TAGSEG", sequenceName = "SEQ_SOC_TAGSEG_ID", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_SOC_TAGSEG")

    相关文章

      网友评论

          本文标题:关于Po

          本文链接:https://www.haomeiwen.com/subject/zufpwltx.html