Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Как настроить hibernate под эклипс и томкат


Автор: smolbars 23.11.2012, 01:17
Всем привет.
Может кто подскажет как првильно бороться с такой ошибкой


No Persistence provider for EntityManager named 

http://foren.germany.ru/showflat.pl?Cat=&Board=programmer&Number=22917338&page=0&view=collapsed&sb=5&part=&vc=
Вобщем описание темы на другом форуме. 

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

Но желательно сделать на том что есть не хочу морочиться конфигурацией.

Сам код вставки в таблицу тут хотя до него не доходит

Цитата

package meta_data;

import javax.persistence.*; 

import com.vaadin.ui.ComboBox;
import com.vaadin.ui.Window;

import entities.meta_period_types;

import com.vaadin.ui.*;

public class Seasons 
{
    public boolean ChangeSeasons(EntityManager EntMng, Window OpWin)
    {
    if (EntMng.createQuery("select count(Id) as cnt from meta_period_types").getFirstResult() > 0)
    {
   //OpWin.showNotification("true");
      return true;
    }
    else
    {
     //OpWin.showNotification("false");
   fill_Seasons(EntMng);
      return false;       
    }   
    }

    private void fill_Seasons(EntityManager EntMng)
    {
    
     EntMng.getTransaction().begin();
    
        String [] Seasons = {"W", "F", "S", "H"};
    
        EntMng.getTransaction().begin();    
    
    
        // fьllen Prьftermintypen
     for (int i = 0; i < Seasons.length; i ++)
        {
        meta_period_types MT = new meta_period_types();
        MT.setId(i+1);
        MT.setSeason_Num(i+1);
        MT.setSeason_Name(Seasons[i]);       
        EntMng.persist(MT);
      }    
       EntMng.getTransaction().commit();

     }    
}


На ваадин просьба внимание не обращать ошибка до него

А вот сущность

Цитата

package entities;

import java.io.Serializable;
import java.lang.String;
import javax.persistence.*;

/**
 * Entity implementation class for Entity: meta_period_types
 *
 */
@Entity

public class meta_period_types implements Serializable {

    
    @Id
    private int Id;
    private int Season_Num;
    private String Season_Name;
    private static final long serialVersionUID = 1L;

    public meta_period_types() {
  super();
    }   
    public int getId() {
  return this.Id;
    }

    public void setId(int Id) {
  this.Id = Id;
    }   
    public int getSeason_Num() {
  return this.Season_Num;
    }

    public void setSeason_Num(int Season_Num) {
  this.Season_Num = Season_Num;
    }   
    public String getSeason_Name() {
  return this.Season_Name;
    }

    public void setSeason_Name(String Season_Name) {
  this.Season_Name = Season_Name;
    }
   
}


Автор: LSD 23.11.2012, 10:25
Проверь что persistence.xml находится в
Код

WEB-INF/classes/META-INF/persistence.xml

Автор: smolbars 25.11.2012, 23:52
Ну уж скоро проект выкладывал через war эклипсом персистенс там где надо.

Но вобщем проблема решена

Все оказалось проще - долбанный эклипс не выкладывает в исполняемый код сторонние jar если они прописаны в пользовательской библиотеке. Впрочем и так не всегда выкладывает. нужно после выкладывания на сервак архива war руками в папку либ classes web-inf копировать хибернейт и все остальное. А дрова мускуля класть в общую папку либ сервака. Но никак не хибирнейт и всю честную компанию иначе томкат глючить будет.

И еще 1 момент - как избавиться при выгрузки ентити (сущностей) в бд из эклипса от ошибки дубликатов когда сущность уже есть. Как визарду консоли хиберней под эклипсом пояснить что 2 раза класть сущность не надо.

И как заставить эклипс генерить schema.ddl а то что то получается через 3 раз на четвертый оно как то не вяно генерится и не всегда от всех сущностей.

И как отрубить кэширование в томкате


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)