java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Application_Identity (имя класса) не отображается [из Application_Identity (имя класса)]
Я получаю эту ошибку при извлечении данных с помощью HQL
Классы и задействованные файлы показаны ниже.
Application_Identity класс
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@SuppressWarnings("serial")
@Entity
public class Application_Identity implements Serializable
{
@Id
@Column(columnDefinition = "serial")
private long Application_ID;
public long getApplication_ID() {
return Application_ID;
}
public void setApplication_ID(long application_ID) {
Application_ID = application_ID;
}
}
Здесь Application_Identity - это родительский класс, от которого другие классы имеют отношения один к одному.
файл hibernate.cfg.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name = "hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name = "hibernate.connection.password">babaswami</property>
<property name = "hibernate.connection.url">jdbc:mysql://localhost:3306/cola?useSSL=true</property>
<property name = "hibernate.connection.username">himanshu</property>
<property name = "hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name = "hibernate.hbm2ddl.auto">create</property>
<property name = "show_sql">true</property>
<!-- Mapping files -->
<mapping resource = "Application_Identity.hbm.xml"/>
<mapping resource = "Application_Type.hbm.xml"/>
<mapping resource = "Graduation.hbm.xml"/>
<mapping resource = "Other_Details.hbm.xml"/>
<mapping resource = "Other_Qualifications.hbm.xml"/>
<mapping resource = "Personal_Details.hbm.xml"/>
<mapping resource = "Phd.hbm.xml"/>
<mapping resource = "Post_Graduation.hbm.xml"/>
<mapping resource = "Sslc_Puc.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Другой класс
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@SuppressWarnings("serial")
@Entity
public class Application_Type implements Serializable
{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long application_type_id;
private String applicant_type;
@OneToOne(cascade=CascadeType.ALL,targetEntity=Application_Type.class)
private Application_Identity application_identity;
public long getApplication_type_id() {
return application_type_id;
}
public void setApplication_type_id(long application_type_id) {
this.application_type_id = application_type_id;
}
public String getApplicant_type() {
return applicant_type;
}
public void setApplicant_type(String applicant_type) {
this.applicant_type = applicant_type;
}
public Application_Identity getApplication_identity() {
return application_identity;
}
public void setApplication_identity(Application_Identity application_identity) {
this.application_identity = application_identity;
}
}




Попробуйте добавить:
@Table(name = "Application_Identity_TABLE_NAME")
вашей организации, если имена разные .. вы можете показать структуру таблиц?
Чтобы убедиться, что вы правильно сопоставляете свои объекты, попробуйте сделать это для своих объектов:
@Entity
@Table(name = "TABLE_IN_DATABASE_NAME")
public class EntityClass implements Serializable {
@Id
@Columns(name = "ID")
private Integer id;
@Columns(name = "OTHER_INT") //same column name in the table
private Integer otherInt;
//getters setters
}
PS: измените частный длинный Application_ID; в частный длинный application_ID;
Можете ли вы быть немного конкретным?