#hibernate #ejb-3.0
#переход в спящий режим #ejb-3.0
Вопрос:
я пытаюсь создать базовый объект гибернации POJO, используя последнюю версию hibernate, и я добавил необходимые файлы jar, которые я загрузил с веб-сайта hibernate.
проблема в том, когда я добавляю строку @Table(name = "user")
он жалуется на ошибку компиляции:
В аннотации @Table должен быть определен атрибут APPLESTO
полный код ниже:
package com.jr.entities.users;
import java.io.Serializable;
import org.hibernate.annotations.Entity;
import org.hibernate.annotations.Table;
@Entity
@Table(name = "user")
public class DAOuser implements Serializable{
private String uid;
private String emailAddress;
private String username;
private String password;
}
В этом примере ссылка http://www.roseindia.net/hibernate/hibernateannotations/hibernate-annotations-tutorial.shtml в нем говорится, что для установки значения applyTo не требуется? Я что-то упускаю? Я создал простой проект EJB3 в eclipse J2ee, если это поможет.
Заранее спасибо
Ответ №1:
Существует два набора аннотаций сохраняемости ( @Entity
и @Table
) — аннотации JPA (в пакете javax.persistence
) и аннотации гибернации (в пакете org.hibernate.annotations
). Обратите внимание, что в примере используются аннотации JPA, тогда как в вашем коде используются аннотации гибернации, поэтому ваш код не компилируется, потому что эти аннотации имеют разные наборы атрибутов.
Итак, вам нужно изменить пакеты в ваших import
инструкциях.
Обычно вы должны использовать аннотации JPA, если вам не нужны некоторые функции, предоставляемые только аннотациями гибернации.
Комментарии:
1. ах, хорошо. есть ли пример того, как сделать вышеупомянутое в чистых аннотациях гибернации? могу ли я смешивать hibernate с аннотациями jpa? Т.е. используйте аннотации jpa для моих объектов и используйте Hibernate.cfg.xml для настройки источника данных?
2. @jonney: Видишь docs.jboss.org/hibernate/annotations/3.5/reference/en/html . Вы можете смешивать аннотации гибернации и JPA по своему усмотрению.
Ответ №2:
appliesTo
содержит ли имя целевую таблицу:
@Table(appliesTo="user")