чего мне не хватает для использования аннотации hibernate?

#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")