2015-10-03 2 views
2
@Entity 
@Table(name = "persons")  
public class Person implements Serializable { 

     @Id 
     @GeneratedValue(strategy = GenerationType.IDENTITY) 
     @Basic(optional = false) 
     @Column(name = "id") 
     private Integer id; 
     @Basic(optional = false) 
     @Enumerated(EnumType.STRING) 
     @Column(name = "occupation") 
     private Occupation occupation; 
     @Basic(optional = false) 
     @Column(name = "address") 
     private String address; 
    } 

Я пытаюсь упорствовать этот объект, и я получаю это исключение:JPA Неизвестный объект типа Exception

вызвано следующими причинами: java.lang.IllegalArgumentException: Объект: com.entity.Person (идентификатор [пустой] оккупация [пустой] адрес [ «Торонто»] не известный тип Entity.

Я попытался посмотреть это исключение, но объяснения способ расплывчато для меня понять. Я вроде новичок в JPA

Может ли кто-нибудь мне помочь.

P.S. У меня есть геттеры и сеттеры

Заранее спасибо.

+0

Что находится в persistence.xml? Работают ли другие организации? –

ответ

1

положить @Entity аннотацию перед классом и сгенерировать геттеры и сеттеры для всех полей ... Попробуйте найти любой пример/учебник.

+0

О, у меня есть эта аннотация, и у меня есть все геттеры и сеттеры. Я плохой, я не хотел долго задавать вопрос, почему я удалил их. –

+0

oh okay, тогда вы можете опубликовать свой persistence.xml, для получения дополнительной информации? В любом случае вы используете Toplink (который устарел), используйте EclipseLink и отбросьте все свои таблицы, прежде чем пытаться снова запустить приложение. –

+0

Я обновил последнюю банку ссылок Eclipse и сделал трюк. Я был удивлен, хотя. Это так странно, потому что остальные сущности работают абсолютно нормально. Но спасибо за помощь и решение. –

1

Следующие условия должны быть выполнены, чтобы ваши объекты были найдены поставщиком JPA.

В случае веб-приложения (приложение запускается на сервере приложений), достаточно, чтобы отметить объекты с @Entity аннотацию, и убедитесь, что в вашем persistence.xml ниже является НЕ набор: <exclude-unlisted-classes>true</exclude-unlisted-classes>

В случае стандартного приложения Java SE вы должны перечислить свои классы либо в файле persistence.xml, либо по ссылке orm.xml.

+0

Большое спасибо @OndrejM Много полезной информации в вашем ответе. Upvoted. –