Where to put hibernate annotations?

后端 未结 4 610
借酒劲吻你
借酒劲吻你 2020-12-08 16:10

Where do i put my hibernate annotations?

Is it the line above my instance variable? Or before the getter? Or before the setter? Or doesn\'t it really matter?

4条回答
  •  不思量自难忘°
    2020-12-08 16:35

    Here is the description of some important annotation used in Hibernate.

    @Entity: declares the class as an entity (i.e. a persistent POJO class)
    
    @Table: is set at the class level; it allows you to define the table, catalog, and schema names for your entity mapping. If no @Table is defined the default values are used: the unqualified class name of the entity.
    
    @Id: declares the identifier property of this entity.
    
    @Generated Value: annotation is used to specify the primary key generation strategy to use. If the strategy is not specified by default AUTO will be used.
    
    @Column: annotation is used to specify the details of the column to which a field or property will be mapped. If the @Column annotation is not specified by default the property name will be used as the column name.
    

    Annotations based Inheritance mapping in Hibernate: There are three kinds os inheritance mappings in hibernate. They are

    1.Table per Class hierarchy:

    @Inheritance – Defines the inheritance strategy to be used for an entity class hierarchy. It is specified on the entity class that is the root of the entity class hierarchy.
    
    @DiscriminatorColumn – Is used to define the discriminator column for the SINGLE_TABLE  inheritance mapping strategies. The strategy and the discriminator column are only specified in the root of an entity class hierarchy or sub hierarchy in which a different inheritance strategy is applied
    
    If the @DiscriminatorColumn annotation is missing, and a discriminator column is required, the name of the discriminator column defaults to "DTYPE" and the discriminator type to DiscriminatorType.STRING.
    
    @DiscriminatorValue – Is used to specify the value of the discriminator column for entities of the given type. The DiscriminatorValue annotation can only be specified on a concrete entity class. If the DiscriminatorValue annotation is not specified and a discriminator column is used, a provider-specific function will be used to generate a value representing the entity type. If the DiscriminatorType is STRING, the discriminator value default is the entity name.
    

    2.Table per sub Class hierarchy:

    @InheritanceType – Defines inheritance strategy options. JOINED is a strategy in which fields that are specific to a subclass are mapped to a separate table than the fields that are common to the parent class, and a join is performed to instantiate the subclass. 
    
    @PrimaryKeyJoinColumn – This annotation specifies a primary key column that is used as a foreign key to join to another table.
    

    3.Table per Concrete class hierarchy:

    @InheritanceType – Defines inheritance strategy options. TABLE_PER_CLASS is a strategy to map table per concrete class.
    @AttributeOverrides – This annotation is used to override mappings of multiple properties or fields.
    
    @AttributeOverride – The AttributeOverride annotation is used to override the mapping of a Basic (whether explicit or default) property or field or Id property or field.
    

    Hope it help's to get idea on basic annotation used in hibenate.

提交回复
热议问题