Как отображение аннотаций выполняется в постоянстве Java? - PullRequest
1 голос
/ 10 декабря 2010

Мы используем аннотации для сопоставления класса сущности с таблицей базы данных, просто указывая @Entity и более как @Id, объединения таблиц и многие другие.Я не знаю, как эти переменные сущности сопоставляются с таблицей базы данных.Может кто-нибудь дать краткое описание для понимания.

Спасибо:)

Ответы [ 4 ]

3 голосов
/ 10 декабря 2010

Ну, идея состоит в том, чтобы перевести ваши объекты и их связи с другими объектами в реляционную базу данных. Эти два способа представления данных (объекты, определенные классами и в таблицах в базе данных) не являются непосредственно совместимыми, и именно здесь вступает в игру так называемая структура Object Relational Mapper . Так что класс вроде

class MyObject
{
    private String name;
    private int age;
    private String password;

    // Getters and setters
}

Будет преобразована в таблицу базы данных, содержащую имя столбца типа varchar, возраст типа int и пароль типа varchar.

Аннотации в Java просто добавляют дополнительную информацию (так называемые метаданные) к определениям вашего класса, которые могут быть прочитаны любым другим классом (например, JavaDoc), и в случае Java Persistence API будет используется средой ORM, такой как Hibernate, для считывания дополнительной информации, необходимой для перевода вашего объекта в базу данных (вашей таблице базы данных требуется первичный идентификатор и некоторая информация - например, какой тип отношения объекта к другому - не может быть определен автоматически просто взглянув на определение вашего класса).

0 голосов
/ 10 декабря 2010

в вашем случае рабочая аннотация означает, что отображение с именем таблицы с классом сущности выглядит как ....


@Entity

@Table(name = "CompanyUser")

public class CompanyUserCAB implements java.io.Serializable

    {
    private long    companyUserID;

    private int     companyID;

        @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "companyUserID")
    public long getCompanyUserID()
    {
        return this.companyUserID;
    }
    public void setCompanyUserID(long companyUserID)
    {
        this.companyUserID = companyUserID;
    }

    @Column(name = "companyID")
    public int getCompanyID()
    {
        return this.companyID;
    }
    public void setCompanyID(int companyID)
    {
        this.companyID = companyID;
    }
}
0 голосов
/ 10 декабря 2010

аннотации - это просто метаданные в классе, ничего магического. Вы можете написать свои собственные аннотации. Этим аннотациям даны политики хранения во время выполнения (что означает, что у вас есть доступ к этим метаданным во время выполнения). Когда вы вызываете persist и т. Д., Поставщик сохраняемости выполняет итерации по полям (java.lang.reflect.Field) в вашем классе и проверяет, какие аннотации присутствуют для построения вашего оператора SQL. Попробуйте написать свою собственную аннотацию и сделать что-нибудь с ней. После этого это не будет казаться очень волшебным.

0 голосов
/ 10 декабря 2010

Аннотации очень хорошо объяснены здесь:
http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...