Как использовать модуль DAO в основном классе Java? - PullRequest
0 голосов
/ 25 марта 2020

Мне нужно использовать объект класса в главном классе, но у меня возникают некоторые проблемы:

public static void main(String[] args) throws NoElementFoundException {
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("fantacalcio_rest");
    EntityManager em = emf.createEntityManager();

}

И это моя

настойчивость. xml :

    <?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="fantacalcio_rest">
        <jta-data-source>java:/fantacalcio_rest</jta-data-source>
        <class>model.Player</class>
        <class>model.Module</class>
        <class>model.User</class>
        <class>model.League</class>
        <class>model.FantaPlayer</class>

        <class>model.PlayerTransfer</class>
        <class>model.Formation</class>
        <class>model.PlayerMark</class>
        <class>model.FantaPlayerMatch</class>
        <class>model.CalendarSerieA</class>
        <class>model.FantaPlayerRank</class>
        <class>model.RankRow</class>

        <properties>
            <!-- Properties for Hibernate -->
            <property name="hibernate.dialect"
                value="org.hibernate.dialect.MySQL5Dialect" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="false" />
            <property name="hibernate.enable_lazy_load_no_trans"
                value="true" />
        </properties>
    </persistence-unit>

</persistence>

Но я получаю эту ошибку:

Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial

Где я ошибаюсь? Как я могу без проблем использовать DAO в классе Java?

1 Ответ

0 голосов
/ 25 марта 2020

Вы не можете использовать инъекцию таким образом. Я думаю, что это короткая и хорошая статья о том, как использовать DI в Java: https://www.vogella.com/tutorials/DependencyInjection/article.html.

Однако я бы порекомендовал вам использовать некоторые фреймворки, например Spring (хороший учебник здесь: https://www.baeldung.com/inversion-control-and-dependency-injection-in-spring).

...