Каково различие между TopLink Essentials & EclipseLink

Когда вы объявляете статическую переменную внутри класса, она только объявляется, но не определяется. Так что вам нужно иметь экземпляр класса внутри cpp.

#include <iostream>

using namespace std;
class A
{
private:

    static A *m_object;
    A()
    {
        m_object = NULL;
    }

public:

    static A* getSingleton();

    int returnVar()
    {
        return 45;
    }

};
A* A::getSingleton()
{
    if(A::m_object == NULL)
    {
       A::m_object = new A();
    }

   return m_object;
}

A* A::m_object; // You forgot this line

int main()
{
    cout<<"Hello World";
    A *a = A::getSingleton();
    cout<<"Address of a"<<&a<<endl;
    cout<<"return a"<<a->returnVar()<<endl;
    A *b = A::getSingleton();
    cout<<"Address of a"<<&b<<endl;
    return 0;
}
7
задан 16 February 2009 в 13:14
поделиться

1 ответ

Основы Toplink, порожденные из Oracle и, являются ссылочной реализацией JPA 1.0. Это несколько сокращение versino коммерческого продукта TopLink Oracle.

Код для ТЕЛЕФОНА был пожертвован основе Eclipse, и это стало EclipseLink. Eclipselink будет ссылочной реализацией JPA 2.0 как часть спецификации EJB 3.1/Java EE 6, которая, как ожидают, будет завершена JavaOne в этом году (который также достигнет высшей точки с финальной версией Glassfish v3).

Нет действительно никакой причины использовать ТЕЛЕФОН теперь. EL 1.0.x является значительно лучшим продуктом и включает все функции Toplink (и больше) и действительно очень хорош.

8
ответ дан 7 December 2019 в 05:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: