org.hibernate.hql.ast.QuerySyntaxException: Tabelle nicht abgebildet
Ich weiß, viele Leute haben gefragt, diese Frage aber ich habe gerade angefangen Java, so dass ich nicht herausfinden konnte, immer noch.
So, hier ist mein problem:
Ich Schreibe RESTful webservices mit Javarestlet
. Hier ist das snippet von meinem DAO
Datei.
try {
session.beginTransaction();
String query = "select number from blockedcli";
@SuppressWarnings("rawtypes")
List list = session.createQuery(query).list(); //.setString("sId", businessId)
logger.error("*******************list*****************************************");
logger.error(list);
logger.error("*******************listend*****************************************");
@SuppressWarnings("rawtypes")
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
blockedcli = (BlockedCli) iterator.next();
}
session.getTransaction().commit();
}
Entsprechend meine entity-Klasse aussieht .
@Entity
@Table(name = "blockedcli")
public class BlockedCli implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="idBlockedCLI", nullable = false, unique=true)
private Integer idBlockedCLI;
@Column(name = "number",nullable = false, length=45)
private String number;
@Column(name = "type", nullable = false)
private Integer type;
.
Ich habe platziert eine BlackListedN.hbm.xml
Datei in meinem config-Verzeichnis mit folgenden text .
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="tecd.persistence.entity.BlockedCli" table="blockedcli">
<id name="idBlockedCLI" type="long" unsaved-value="null">
<column name="idBlockedCLI" not-null="true"/>
<generator class="identity"/>
</id>
<property name="number">
<column name="number" not-null="true" />
</property>
</class>
</hibernate-mapping>
Als ich möchte nur die Anzeige der Zahl .
Und Hier ist der DB-Tabelle .
+--------------+--------------+--------+------+---------------------+---------------------+---------------------------------------+
| idBlockedCLI | number | status | type | createdDT | updatedDT | BusinessDirectory_idBusinessDirectory |
+--------------+--------------+--------+------+---------------------+---------------------+---------------------------------------+
| 1 | 919845611234 | 1 | 1 | 2014-03-24 13:31:20 | 2014-03-24 13:31:20 | 1 |
+--------------+--------------+--------+------+---------------------+---------------------+---------------------------------------+
Aber wenn ich diese lief Jedesmal, wenn Sie sagt,
org.hibernate.hql.ast.QuerySyntaxException: blockedcli is not mapped [select number from blockedcli]
Bitte mir helfen um dieses Problem zu korrigieren .
Dies ist mein erstes Java-Programm, so bin ich nicht sicher, was sonst erforderlich ist, zu erarbeiten, dieses jedoch tun, lassen Sie mich wissen, wenn etwas anderes erforderlich.
InformationsquelleAutor burning | 2014-05-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bei der Verwendung von HQL, finden Sie richtig aktiviert entity-Namen/Eigenschaften, nicht die Namen der Tabellen/Spaltennamen. Einfach ändern Sie Ihre Abfrage, um
select number from BlockedCli
, und es sollte funktionieren.InformationsquelleAutor Aleksander Blomskøld
Versuchen Sie, entity-name in Abfrage
ODER wenn Sie nicht wollen, zu ändern query-Namen können Sie festlegen
name
AttributEntity
annotationInformationsquelleAutor Wundwin Born
Überprüfen Sie auch für
hibernate-cfg.xml
ob es enthält Eintrag für das mapping von java-Objekt.<mapping class="com.yourpackage.App" />
InformationsquelleAutor Vivek Gulati
Stand ich vor diesem Problem, aber in meinem Fall wurde das problem durch gradle-version.
Wenn ich änderte mein system von linux auf mac, dann musste ich wechseln von gradle-1.0-milestone-3-gradle-1.0-milestone-4 als milestone-3 funktioniert nicht unter OSX. Und in gradle-1.0-milestone-4 ich Stand vor dem gleichen Problem, dann musste ich abbauen meinem gradle-version zu gradle-1.0-milestone-1. Nun, es ist in Ordnung, die
InformationsquelleAutor Shanky Munjal
Legen Sie einen Namen für die Entity-annotation
Dann stellen Sie Ihre Abfrage, wie unten dargestellt.
InformationsquelleAutor CrazyJavaLearner