я делаю пример программы в спящем режиме, следуйте этому уроку:
http://www.myeclipseide.com/documentation/quickstarts/hibernateintroduction/
используя реверс-инжиниринг, я создал этот метод.
EventsDAO.java:
public Events findById(com.hibernate.EventsId i) {
log.debug("getting Events instance with id: " + i);
try {
Events instance = (Events) getSession().get(
"com.hibernate.Events", i);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
и вызов из основного класса для создания этого метода:
private static void listEvents()
{
EventsDAO dao= new EventsDAO();
Events events= dao.findById(1);
printEvents("Printing User,", events);
dao.getSession().close();
}
выдает ошибку: Events events = dao.findById (1);
потому что здесь я передаю Int. и в EventsDAO.java его тип - EventsID.
пожалуйста, предложите.
как предполагает surlac,
сейчас это исключение:
Исключение в потоке "main" org.hibernate.id.IdentifierGenerationException: идентификаторы для этого класса должны быть назначены вручную перед вызовом save (): com.hibernate.Events
private static void addEvents()
{
Events events= new Events();
events.setUid(1);
events.setName("abc");
events.setDuration(123);
EventsDAO dao= new EventsDAO();
Transaction tx=dao.getSession().beginTransaction();
dao.save(events);
tx.commit();
dao.getSession().close();
}
это исключение в этой строке:
dao.save(events);
Вот файл Events.hbm.xml: <?xml version="1.0" encoding="utf-8"?><br>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><br>
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
--><br>
<hibernate-mapping><br>
<class name="com.hibernate.Events" table="EVENTS" schema="APP"><br>
<composite-id name="id" class="com.hibernate.EventsId"><br>
<key-property name="uid" type="java.lang.Long">
<column name="UID" /><br>
</key-property><br>
<key-property name="name" type="java.lang.String">
<column name="NAME" length="20" /><br>
</key-property><br>
<key-property name="duration" type="java.lang.Integer">
<column name="DURATION" />
</key-property><br>
</composite-id><br>
</class><br>
</hibernate-mapping>
помогите пожалуйста.