Я работаю в течение нескольких часов по этому вопросу о сопоставлении спящего режима. Я думаю, что ошибка может быть простой синтаксической ошибкой, но я не могу ее найти !!!Hibernate Mapping Класс исключений не найден
я побежал в следующее исключение, когда я выполнил мой код:
Initial SessionFactory creation failed.org.hibernate.MappingException: entity class not found: LegalFee
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.plm.dao.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:33)
at com.plm.dao.util.HibernateUtil.getSessionFactory(HibernateUtil.java:39)
at com.plm.dao.AppTest.main(AppTest.java:15)
Во-первых, я использую спящий режим 4.2 с Java 8 и MariaDB 10.
Смотреть все конфигурации ниже.
Мой hibernate.cfg.xml, я удалил конфигурацию C3P0:
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name='connection.driver_class'>com.mysql.jdbc.Driver</property>
<property name='connection.url'>jdbc:mysql://localhost:3306/PokerLeagueManager</property>
<property name='connection.username'>root</property>
<property name='connection.password'>mypassword</property>
<property name="show_sql">true</property>
<!-- SQL dialect -->
<property name='dialect'>org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name='show_sql'>true</property>
<mapping resource="mappings/BlindStructure.hbm.xml"/>
<mapping resource="mappings/Tournament.hbm.xml"/>
<mapping resource="mappings/LegalFee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Ошибка находится на LegalFee боба так сосредоточиться на нем. См создание таблицы SQL в legalFee:
CREATE TABLE `legalFee` (
`idFee` int(11) NOT NULL,
`shortName` varchar(50) NOT NULL,
`description` varchar(200) DEFAULT NULL,
`feePercent` int(11) DEFAULT NULL,
`feeFixed` int(11) DEFAULT NULL,
PRIMARY KEY (`idFee`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Класс:
public class LegalFee implements Serializable {
/**
* generated serial uid
*/
private static final long serialVersionUID = -2259355205530727294L;
private int idFee;
private String shortName;
private String description;
private Integer feePercent;
private Integer feeFixed;
private Set<Tournament> tournaments = new HashSet<Tournament>(0);
public LegalFee() {
}
public LegalFee(int idFee, String shortName) {
this.idFee = idFee;
this.shortName = shortName;
}
public LegalFee(int idFee, String shortName, String description,
Integer feePercent, Integer feeFixed, Set<Tournament> tournaments) {
this.idFee = idFee;
this.shortName = shortName;
this.description = description;
this.feePercent = feePercent;
this.feeFixed = feeFixed;
this.tournaments = tournaments;
}
public int getIdFee() {
return this.idFee;
}
public void setIdFee(int idFee) {
this.idFee = idFee;
}
public String getShortName() {
return this.shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getFeePercent() {
return this.feePercent;
}
public void setFeePercent(Integer feePercent) {
this.feePercent = feePercent;
}
public Integer getFeeFixed() {
return this.feeFixed;
}
public void setFeeFixed(Integer feeFixed) {
this.feeFixed = feeFixed;
}
public Set<Tournament> getTournaments() {
return this.tournaments;
}
public void setTournaments(Set<Tournament> tournaments) {
this.tournaments = tournaments;
}
}
И, наконец, LegalFee.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="LegalFee" table="legalFee" catalog="PokerLeagueManager" optimistic-lock="version">
<id name="idFee" type="int">
<column name="idFee" />
<generator class="identity" />
</id>
<property name="shortName" type="string">
<column name="shortName" length="50" not-null="true" />
</property>
<property name="description" type="string">
<column name="description" length="200" />
</property>
<property name="feePercent" type="java.lang.Integer">
<column name="feePercent" />
</property>
<property name="feeFixed" type="java.lang.Integer">
<column name="feeFixed" />
</property>
<set name="tournaments" table="tournament" inverse="true" lazy="true" fetch="select">
<key>
<column name="legalFee_feeId" />
</key>
<one-to-many class="Tournament" />
</set>
</class>
</hibernate-mapping>
Спасибо за вашу помощь.
Попробуйте установить полное имя вашего класса в LegalFee.hbm.xml, например. com.foocompany.LegalFee (класс node) –
Я уже пробовал это решение. Он сделал все мои бобы с аналогичной ошибкой. Как и спящий режим, они совсем не находят. В этом случае ошибка: Начальное создание SessionFactory failed.org.hibernate.MappingException: ассоциация из турнира таблицы относится к немаркированному классу: LegalFee Исключение из потока «main» java.lang.ExceptionInInitializerError \t at com.plm. dao.util.HibernateUtil.buildSessionFactory (HibernateUtil.java:33) \t в com.plm.dao.util.HibernateUtil.getSessionFactory (HibernateUtil.java:39) \t в com.plm.dao.AppTest.main (AppTest. java: 15) – Wodric
Я получил его, есть имя и параметр класса, которые нуждаются в полном квалифицированном имени – Wodric