[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Annotations inside the HAR
arres
do-not-reply at jboss.com
Mon Sep 15 10:40:05 EDT 2008
Hi all,
I am trying to build a jboss application that uses a hibernate archive (HAR).
But when I am trying to access the DAO inside the HAR I got the exception "Unknown entity".
I build the Entity using Annotations.
Do you know if it is possible to build an HAR with Hibernate-Annotations?
I also read that there should be a jboss-hibernate.deployer directory inside the jboss, but I can't find this directory inside my jboss. So I am a little bit confused. Do you know what I should do here?
I am using the following versions:
- JBoss 4.2.2
- Hibernate 3 shipped with JBoss
- Java 6
My HAR contains these files:
- EntityUser.java
- DAOUser.java
- hibernate-service.xml
EntityUser:
| package de.backend.persistence.entity;
|
| import javax.persistence.Entity;
| import javax.persistence.Table;
| import javax.persistence.Id;
| import javax.persistence.Column;
| import java.io.Serializable;
|
| @Entity
| @Table(name="user")
| public class EntityUser
| implements Serializable {
|
| @Id
| @Column(name="id")
| private Long id;
|
| @Column(name="login_name")
| private String loginName;
|
| @Column(name="login_pass")
| private String loginPassword;
|
|
| public Long getId() {
| return id;
| }
|
| public void setId(Long id) {
| this.id = id;
| }
|
| public String getLoginName() {
| return loginName;
| }
|
| public void setLoginName(String loginName) {
| this.loginName = loginName;
| }
|
| public String getLoginPassword() {
| return loginPassword;
| }
|
| public void setLoginPassword(String loginPassword) {
| this.loginPassword = loginPassword;
| }
|
| }
|
DAOUser:
| package de.backend.persistence.dao;
|
| import org.hibernate.SessionFactory;
| import org.hibernate.Session;
|
| import javax.naming.InitialContext;
|
| import de.backend.persistence.entity.EntityUser;
|
|
| public class DAOUser {
|
| public void storeUser(EntityUser user)
| throws Exception {
| InitialContext ctx = new InitialContext();
| SessionFactory factory = (SessionFactory)ctx.lookup("java:/hibernate/SessionFactoryBase");
| Session hsession = factory.openSession();
| hsession.beginTransaction();
| hsession.save(user);
| hsession.getTransaction().commit();
| }
|
| }
|
hibernate-service.xml:
| <server>
| <mbean code="org.jboss.hibernate.jmx.Hibernate" name="jboss.har:service=Hibernate">
| <attribute name="DatasourceName">java:/base</attribute>
| <attribute name="Dialect">org.hibernate.dialect.PostgreSQLDialect</attribute>
| <attribute name="DefaultSchema">public</attribute>
| <attribute name="SessionFactoryName">java:/hibernate/SessionFactoryBase</attribute>
| <attribute name="CacheProviderClass">org.hibernate.cache.HashtableCacheProvider</attribute>
| <!--<attribute name="Hbm2ddlAuto">create-drop</attribute>-->
| <attribute name="ShowSqlEnabled">true</attribute>
| </mbean>
| </server>
|
This is the Exception that I get when I am trying to access the DAO:
| 11:19:11,437 ERROR [STDERR] org.hibernate.MappingException: Unknown entity: de.backend.persistence.entity.EntityUser
| at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
| at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
| at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:98)
| at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
| at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
| at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
| at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
| at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
| at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
| at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
| at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
| at de.backend.persistence.dao.DAOUser.storeUser(DAOUser.java:23)
| at de.backend.crs.bean.calculator.CalculatorBean.storeMyUser(CalculatorBean.java:52)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
| at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
|
It would be realy nice if you could tell me if I forgot some configuration or make some mistake in developing.
I am getting despreate because I don't know what I can do anymore.
I am looking forward for any help.
Thanks in advance,
Hal
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4176544#4176544
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4176544
More information about the jboss-user
mailing list