2015-05-29 3 views
0

Я пытаюсь решить упражнение по программированию на Java для универсистики, но я не знаю, как решить следующую проблему. У меня есть следующий файл persistence.xml:JPA извлекает объекты из базы данных

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
    <persistence-unit name="stud" transaction-type="RESOURCE_LOCAL"> 
    <class>lt.vu.mif.jate.tasks.task03.jpa.model.Customer</class> 
    <class>lt.vu.mif.jate.tasks.task03.jpa.model.Product</class> 
    <class>lt.vu.mif.jate.tasks.task03.jpa.model.Sale</class> 
    <exclude-unlisted-classes>true</exclude-unlisted-classes> 
    <properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> 
     <property name="hibernate.max_fetch_depth" value="3"/> 
     <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.NoCacheProvider"/> 
     <property name="hibernate.generate_statistics" value="false"/> 
     <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://****************"/> 
     <property name="javax.persistence.jdbc.user" value=""/> 
     <property name="javax.persistence.jdbc.password" value=""/> 
     <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/> 
     <property name="hibernate.hbm2ddl.auto" value="none"/> 
    </properties> 
    </persistence-unit> 
</persistence> 

URL-адрес базы данных здесь просто омрачен. Я не могу изменить этот файл. Мне нужно подключиться к базе данных и получить все данные из базы данных. Я уже создал три класса. Как мне это сделать? Большое спасибо.

+0

Знаете ли вы, что пользователь jpql? –

+0

Я знаю, что java lenguage для запросов. Но прямо сейчас у меня нет связи с базой данных. –

+0

В чем конкретно проблема? Вы не можете получить соединение с базой данных, или вы не можете использовать соединение для чего-нибудь полезного? – Tobb

ответ

0

Посмотрите на эту страницу:

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/SettingUpJPA/SettingUpJPA.htm

и

https://docs.jboss.org/hibernate/orm/3.6/quickstart/en-US/html/hibernate-gsg-tutorial-jpa.html

Есть несколько других учебников и т.д. там. Но ключевой частью, которая, как я думаю, вам не хватает, является:

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

Это дает вам EntityManager. Вы можете позвонить:

em.getTransaction().begin(); 
List<Customer> result = entityManager.createQuery("from Customer", Customer.class).getResultList(); 
+0

Я следил за вашими советами. Теперь я получил этот excepcion: «java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: клиент не отображается [от клиента]« Это потому, что у меня плохие анотации в моем классе? или может быть что-то еще? Благодарю. –

+0

Обычно «клиент не отображается» означает, что ваш поставщик JPA (в данном случае спящий режим) не взял класс Customer в качестве объекта. Так что это может быть проблемой с вашими аннотациями. Просто для подтверждения - он чувствителен к регистру и ищет объект, а не таблицу, поэтому убедитесь, что у вас есть «от клиента», а не «от клиента». Кроме того, вы можете попробовать «entityManager.createNativeQuery (« выберите * от клиента »)», чтобы убедиться, что соединение работает. В этом случае он выполняет собственный SQL, поэтому он ищет имя таблицы, а не сущность, поэтому нижний регистр. – Matt

Смежные вопросы