SPRING-SOURCE.RU | |
|
|
После создания или генерирования классов можно добавлять метаданные отображения (МО).
МО делятся на аннотации над классом, аннотации над полями.
В JPA аннотации можно даже не прописывать. Если над полем нет аннотации, то оно все равно сохраняется в базу данных. JPA по умолчанию сохраняет все поля которые есть в объекте, если, конечно, над объектом стоит аннотация @Entity. Чтобы поле не сохранялось @Transient.
Не все поля сохраняются (все, что не implement Serializable). Java Socket тоже не сохраняется.
@Entity //Над каждым классом, который будет сохраняться в БД
@Entity (name = "name") // name нужно, чтобы позже использовать его в запросах, если name не указан, то указывается имя класса
@Table (name = "name") // Необязательно. Если не указываем, то наш класс будет сохраняться в таблицу с именем класса либо name.
@Table (name = "name", schema = "name") //schema – наподобие каталога
@NamedQueries // можно сразу написать запросы, которые будут выполняться с этим классом.
...
@Basic // означает, что поле сохраняется в базу, но поле так и так сохраняется. То есть здесь просто создается видимость сохранения. Можно не писать
@Basic (optional = "true") // Если стоит true, то это будет обычное поле (колонка) в БД, если false – значение колонки будет null
@Column (name = "name") // В какую колонку будет сохраняться наше поле. Если нет name, то колонка будет соответствовать имени поля.
@Column (name = "name", unique = "true", nullable = "true")// Параметр уникальности колонки, следующий параметр обозначает, допустимы ли null значения или нет
@Temporal (TIMESTAMP) // ставим над Date или Calendar (лучше calendar)
@Temporal (DATE)
@Id// primary key поле
@GeneratedValue // автоматическое генерирование уникального поля. Используется с @id
@Transient
@Enumerated // наследуемые от класса enum
@Lob // - Large Object string поля, где много текста (поле будет генерировать в базе с типом varchar длинной 255)
@OneToMany @ManyToOne
...
Copyright © 2024 |