takto jsem to zkousel:
package cz.firma.domain;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.Version;
@MappedSuperclass
public class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Version
private int version;
}
package cz.firma.domain;
import javax.persistence.Table;
import org.hibernate.annotations.Entity;
@Entity
@Table(name = "user")
public class User extends BaseEntity {
private String firstName;
private String lastName;
private String userName;
private String password;
private String email;
private Address address;
}
a dataAccessContext.xml file:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="annotatedPackages">
<list>
<value>cz.firma.domain</value>
</list>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop
key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.max_fetch_depth">3</prop>
</props>
</property>
</bean>
ale pokus o ulozeni do DB zkonci vyjimkou:
org.hibernate.MappingException: Unknown entity: cz.firma.domain.User
------------ Původní zpráva ------------
Od: Zdeněk Šenk <[EMAIL PROTECTED]>
Předmět: Re: hibernate annotations
Datum: 11.12.2007 10:50:40
----------------------------------------
Muzete to napriklad namapovat takto:
@MappedSuperclass
public class BaseEntity {
@Id
@... pripadne dalsi anotace
private Long id;
@Column(...
private int version;
...
}
@Entity
@Table(name = "...")
public class User extends BaseEntity {
private String firstName;
private String lastName;
private String userName;
private String password;
private String email;
private Address address;
....
}
radovan deka napsal(a):
> Ahoj, nevim si rady, jak pomoci anotaci namapovat toto:
>
> public class BaseEntity {
> private Long id;
> private int version;
>
> ...
> }
>
>
> public class User extends BaseEntity {
>
> private String firstName;
> private String lastName;
> private String userName;
> private String password;
> private String email;
> private Address address;
>
> ....
> }
>
> Trida BaseEntity se do DB neuklada, ale dedi od ni vsechny persistentni tridy.
Tusim, ze musim pouzit anotaci @MappedSuperclass, ale nevim jak namapovat to id
a version.
>
>
>