MySQL / Hibernate Mapping: Spalte nicht gefunden - Wo ist der Fehler?

silmepurpurdrache

Grünschnabel
Ich habe ein Problem mit dem Hibernate-Mapping meiner MySQL-Datenbank:

org.hibernate.InvalidMappingException: Could not parse mapping document from resource de/usu/portlet/aufgabenliste/hibernate/ToDoList.hbm.xml
....
Caused by: org.hibernate.PropertyNotFoundException: field [extresp] not found on de.usu.portlet.aufgabenliste.hibernate.ToDoList

Nun, das Feld extresp ist vorhanden, ich kann auch über den MyEclipse Database Explorer darauf zugreifen und diverse Select-Statements ausführen. Der Fehler tritt auch dann auf, wenn ich extresp nicht mappe, dann kommt dasselbe mit der nächsten Spalte.

Hier mein Mapping (ToDoList.hbm.xml):

HTML:
<?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 default-lazy="false" auto-import="false">
	<class name="de.usu.portlet.aufgabenliste.hibernate.ToDoList" table="ToDoList">
		<id name="id" type="int">
			<generator class="increment" />
		</id>
		<property name="title" />
		<property name="description" /> 
		<property name="extresp" column="extresp" />
		<property name="enddate" />
		<property name="executiongrade" />
		<property name="comments" />
		<property name="history" />
		<property name="group_id" />
		<property name="user_id" />
		<property name="resp_id" />
	</class>

</hibernate-mapping>

ToDoList.java:
Code:
package de.usu.portlet.aufgabenliste.hibernate;

public class ToDoList {
	private int _id;
	private String _title;
	private String _description;
	private String _resp_id;
	private String _extresp;
	private String _enddate;
	private String _executiongrade;
	private String _comments;
	private String _history;
	private String _group_id;
	private String _user_id;
	
	public ToDoList() {}
	public ToDoList(String title, String description, String extresp, String enddate,
			String executiongrade, String comments, String history, String groupId, String userId, String resp_id) {
		//_secondTel = secondtel;
		_title = title;
		_description = description;
		_extresp = extresp;
		_enddate = enddate;
		_executiongrade = executiongrade;
		_comments = comments;
		_history = history;
		_group_id = groupId;
		_user_id = userId;
		_resp_id = resp_id;
	}
	
	
	public int getId() {
		return _id;
	}
	public void setId(int id) {
		_id = id;
	}
	
	public String getTitle() {
		return _title;
	}
	public void setTitle(String title) {
		_title = title;
	}
	
	public String getDescription() {
		return _description;
	}
	public void setDescription(String description) {
		_description = description;
	}
	
	public String getResp_Id() {
		return _resp_id;
	}
	public void setResp_Id(String respId) {
		_resp_id = respId;
	}
	
	public String getExtResp() {
		return _extresp;
	}
	
	public void setExtResp (String extresp) {
		_extresp = extresp;
	}
	
	public String getEndDate() {
		return _enddate;
	}
	public void setEndDate(String enddate) {
		_enddate = enddate;
	}
	
	public String getExecutionGrade() {
		return _executiongrade;
	}
	public void setExecutionGrade(String executiongrade) {
		_executiongrade = executiongrade;
	}
	
	public String getComments() {
		return _comments;
	}
	public void setComments(String comments) {
		_comments = comments;
	}
	
	public String getHistory() {
		return _history;
	}
	public void setHistory(String history) {
		_history = history;
	}
	
	public String getGroup_id() {
		return _group_id;
	}
	public void setGroup_id(String groupID) {
		_group_id = groupID;
	}
	
	public String getUser_id() {
		return _user_id;
	}
	public void setUser_id(String userID) {
		_user_id = userID;
	}
}

Meine Klasse, die die Verbindung mit der Datenbank aufbaut:
Code:
	public static List getDatabaseEntries(long cComm, int start) {
		//Configuration cfg = new Configuration();
		//cfg.addResource("de/usu/portlet/addressbook/hibernate/ToDoList.hbm.xml");
		
		Session session = null;
		/* we always need a transaction */
		Transaction tx = null;
	
		/* get session of the current thread */
		session = HibernateSessionFactory.getSession();
	

		tx = session.beginTransaction();
		SQLQuery q = session.createSQLQuery("SELECT {ToDoList.*} FROM ToDoList WHERE group_id = :var ORDER BY lastname ASC");
		q.setLong("var", cComm);
		q.setFirstResult(start);
		q.setMaxResults(10);
		
		q.addEntity("ToDoList", ToDoList.class);
	
		List l =  q.list();
	
		session.getTransaction().commit();

		session.disconnect();
		
		return l;
	}

Ich finde den Fehler nicht .. Den Code habe ich aus einem anderen Projekt mit einer anderen Tabelle (das funktioniert), und habe alle Namensänderungen bereits hinter mir. Das Mapping funktioniert ja auch (angeblich), aber nur bis zu der bestimmten Stelle.
 
Okay, ich habe den Fehler selbst gefunden; in den Gettern und Settern sind keine Großbuchstaben erlaubt, außer direkt nach get... und set... Beispiel:

FALSCH:
Code:
	public String getExecutionGrade() {
		return _executiongrade;
	}
	public void setExecutionGrade(String executiongrade) {
		_executiongrade = executiongrade;
	}

RICHTIG:
Code:
	public String getExecutiongrade() {
		return _executiongrade;
	}
	public void setExecutiongrade(String executiongrade) {
		_executiongrade = executiongrade;
	}

Ein bekloppter Fehler :suspekt: Naja :)
 

Neue Beiträge

Zurück