entity类中用@ApiModelProperty注解啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了entity类中用@ApiModelProperty注解啥意思相关的知识,希望对你有一定的参考价值。

@Entity 表示当前为实体类 @Id 主键 @GeneratedValue(strategy=GenerationType.UUID) 主键生成策略。 @Column 映射字段的定义,包括映射的数据库表的字段名称。是否允许为空。字段长度等等定义。

对java实体类的众多理解:

A .就是属性类,通常定义在model层里面 

B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段。

好处:

1.对对象实体的封装,体现OO思想。

2.属性可以对字段定义和状态进行判断和过滤

3.把相关信息用一个实体类封装后,我们在程序中可以把实体类作为参数传递,更加方便。

C. 说白了就是为了让程序员在对数据库操作的时候不用写SQL语句 

D. 就是一个数据库表生成一个类

这样做对数据库操作起来方便

编写代码较少 提高效率 可以使程序员专注逻辑关系 

E. 实体类就是把对某一个表的操作全写在一个类中.

F. 在Java开发中经常要定义一些实体类,这些类的定义的好坏会直接影响,编写代码的质量和难易程度,以下是别人总结的一些经验。

一、实体类的名字尽量和数据库的表的名字对应相同。

二、实体类应该实现java.io.Serializable接口。

三、实体类应该有个无参的构造方法。

四、实体类应该有个有参(所有的参数)的构造方法。

五、实体类有属性和方法,属性对应数据库中表的字段,主要有getter和setter方法。

六、实体类还应该有个属性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;

七、属性一般是private类型,方法位public类型,对于数据库自动生成的ID字段对应的属性的set方法应为private。

G. 实体类中都是实例对象,实例对象在jvm的堆区中开辟了一个该对象引用空间,并且让该引用指向某个实例,类声明只是在jvm的栈去中开辟了一个该对象引用,没有让该引用做任何指向.

例如 :

1.String str;

2.String str = new String ("dgfgg");

1中的只是一个引用,说明str应该指向一个String 类型的实例,但还没对str和堆区的实例做具体的指向.也就是说它还没有指向某个实例.

而2中的即定义了一个引用(str)又对str做了具体的指向,它指向的内容就是后面new出来的String 实例.

实体类中的构造方法+set方法+get方法:

构造函数:初始化成员变量

get,set方法,获取和改变成员变量的值,JavaBean规范规定只使用get/set访问成员变量

构造函数:你每次写一个Java文件,实际上都写了一个类(创建一个类,jvm就会自动为这个类开辟一块内存空间)。有了类就需要有类对象,要产生类对象就需要构造函数对这个刚刚申请的内存空间做一点事,赋属性值之类的工作。当然,如果你不写,它就默认有一个Class()的构造方法出现,当然它什么活也不干。

你的属性是什么样的?public?private?默认?还是protected?这四种你找教材务必弄懂分清,很有用。如果是private,这种属性不许别的对象改和读,但有时候需要改/读,怎么办?写一个public void setAbc(xxx)和一个public xxx getAbc()就实现外部读写属性的功能了。

set ,get完全是自我规定的,就是设置初值和获得值的意思.你也可以修改成其他字符.但是用set ,get还是要好些,因为你能通过单词理解你写的代码的意思,方便阅读而已。

参考技术A

以下内容均为复制,原文地址:http://blog.csdn.net/u013291972/article/details/72773011

一、swagger常用注解
1、与模型相关的注解
两个注解:
@ApiModel:用在模型类上,对模型类做注释;
@ApiModelProperty:用在属性上,对属性做注释
2、与接口相关的注解
六个注解:
@Api:用在controller上,对controller进行注释;
@ApiOperation:用在API方法上,对该API做注释,说明API的作用;
@ApiImplicitParams:用来包含API的一组参数注解,可以简单的理解为参数注解的集合声明;
@ApiImplicitParam:用在@ApiImplicitParams注解中,也可以单独使用,说明一个请求参数的各个方面,该注解包含的常用选项有:
paramType:参数所放置的地方,包含query、header、path、body以及form,最常用的是前四个。
name:参数名;
dataType:参数类型,可以是基础数据类型,也可以是一个class;
required:参数是否必须传;
value:参数的注释,说明参数的意义;
defaultValue:参数的默认值;
@ApiResponses:通常用来包含接口的一组响应注解,可以简单的理解为响应注解的集合声明;
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:即httpCode,例如400 
message:信息,例如"请求参数没填好"

参考技术B @Entity 表示当前为实体类 @Id 主键 @GeneratedValue(strategy=GenerationType.UUID) 主键生成策略。 @Column 映射字段的定义,包括映射的数据库表的字段名称。是否允许为空。字段长度等等定义。 参考技术C 你不是加了?id生成策略好像没有加@entity实体类@对应的数据表@column定义的变量不是很数据库字段一样吗。你还加干嘛。

尝试从命名空间“Application\MediaBundle\Entity”加载类“Media”

【中文标题】尝试从命名空间“Application\\MediaBundle\\Entity”加载类“Media”【英文标题】:Attempted to load class "Media" from namespace "Application\MediaBundle\Entity"尝试从命名空间“Application\MediaBundle\Entity”加载类“Media” 【发布时间】:2017-03-23 01:14:16 【问题描述】:

我想在我的管理类中添加个人资料图片,但出现此错误:

尝试从命名空间“Application\MediaBundle\Entity”加载类“Media”。 您是否忘记了“使用”声明,例如“Sonata\MediaBundle\Model\Media”、“Sonata\MediaBundle\Tests\Entity\Media”、“Sonata\MediaBundle\Tests\Document\Media”还是“Sonata\MediaBundle\Tests\PHPCR\Media”?

我搜索了很多但没有解决方案。 这是我的代码

用户实体

>  /**
>      * @var \Application\Sonata\MediaBundle\Entity\Media
>      * @ORM\ManyToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media",
> cascade="persist", fetch="LAZY")
>      */
>     protected $media;
> 
>     /**
>      * Set media
>      *
>      * @param \Application\Sonata\MediaBundle\Entity\Media $media
>      * @return User
>      */
>     public function setMedia(\Application\Sonata\MediaBundle\Entity\Media $media = null)
>     
>         $this->media = $media;
> 
>         return $this;
>     
> 
>     /**
>      * Get media
>      *
>      * @return \Application\Sonata\MediaBundle\Entity\Media
>      */
>     public function getMedia()
>     
>         return $this->media;
>     

用户管理员

 /**
     * @param \Sonata\AdminBundle\Form\FormMapper $formMapper
     *
     * @return void
     */
    protected function configureFormFields(FormMapper $formMapper)
    
        $formMapper
            ->with('General')
            ->add('username')
            ->add('email')
            ->add('enabled')
            ->add('firstname')
            ->add('lastname')
            ->add('plainPassword', 'password', array(
                'required' => (!$this->getSubject() || is_null($this->getSubject()->getId())),
            ))
            ->add('media', 'sonata_media_type', array('provider' => 'sonata.media.provider.image', 'context' => 'engine', 'data_class' => 'Application\Sonata\MediaBundle\Entity\Media', 'required' => false))
            ->end();
    

config.yml

# app/config/config.yml

sonata_media:
    class:
        media: Application\MediaBundle\Entity\Media
        gallery: Application\MediaBundle\Entity\Gallery
        gallery_has_media: Application\MediaBundle\Entity\GalleryHasMedia
    # if you don't use default namespace configuration
    #class:
    #    media: MyVendor\MediaBundle\Entity\Media
    #    gallery: MyVendor\MediaBundle\Entity\Gallery
    #    gallery_has_media: MyVendor\MediaBundle\Entity\GalleryHasMedia
    db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
    default_context: default # you need to set a context
    contexts:
        default:  # the default context is mandatory
            providers:
                - sonata.media.provider.dailymotion
                - sonata.media.provider.youtube
                - sonata.media.provider.image
                - sonata.media.provider.file
                - sonata.media.provider.vimeo

            formats:
                small:  width: 100 , quality: 70
                big:    width: 500 , quality: 70
        # other contexts here
        engine:
            providers:
                - sonata.media.provider.image

            formats:
                preview:    width: 100, quality: 100
                small:      width: 200, quality: 100
                large:      width: 600, quality: 100
    cdn:
        server:
            path: /uploads/media # http://media.sonata-project.org/

    filesystem:
        local:
            directory:  "%kernel.root_dir%/../web/uploads/media"
            create:     false
    providers:
        image:
            resizer: sonata.media.resizer.square

doctrine:
    orm:
        entity_managers:
            default:
                mappings:
                    FOSUserBundle: ~
                    SonataMediaBundle: ~
    dbal:
        types: #this is about this line and line below
            json:     \Doctrine\DBAL\Types\StringType
doctrine_phpcr:
    odm:
        auto_mapping: true
        mappings:
            SonataMediaBundle:
                prefix: Sonata\MediaBundle\PHPCR

这是tutoruial 有什么帮助吗? 对不起英语

【问题讨论】:

【参考方案1】:

问题出在配置文件config.yml

> sonata_media:
>     class:
>         media: Application\Sonata\MediaBundle\Entity\Media
>         gallery: Application\Sonata\MediaBundle\Entity\Gallery
>         gallery_has_media: Application\Sonata\MediaBundle\Entity\GalleryHasMedia
>         category:   Application\Sonata\ClassificationBundle\Entity\Category

【讨论】:

以上是关于entity类中用@ApiModelProperty注解啥意思的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA 在 JPQL 中用“无法解析符号”突出显示 @Entity 类名

cms-最近更新

Hibernate中用到联合主键的使用方法,为何要序列化,为何要重写hashcode 和 equals 方法

Hibernate中的Entity类之间的继承关系之一MappedSuperclass

01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable

如何在 Hibernate 中用 TableGenerator 替换已弃用的 MultipleHiLoPerTableGenerator