2015-12-13 4 views
0

Я новичок, и в настоящее время я немного играю с EJB, Jboss 7.1 и mySQL.Набор сущностей-сущностей внутри сущности Entity bean

Но на самом деле у меня есть проблема.

Я хочу создать следующее созвездие с бин сущностей:

1) объектный компонент с

  • МАС-адрес (String)
  • типа адрес (String)
  • СИ (String)
  • a a data data

2) объектный компонент с

  • х значений (длинных)
  • значений Y (двойных)

Это означает, что компонент управления 1) должен иметь набор объектных компонентов из 2).

Так я реализовал 1) следующим образом

@Entity 
@Table(name="sensortable") 
public class SensorTableBean implements Serializable { 


private static final long serialVersionUID = 1L; 
@Id 
@GeneratedValue 
private int id; 
private String mac; 
private String type; 
private String si; 
private set<DataBean> data; 
... 

DataBean является объектный компонент, который включает в х и у значений.

Когда я начал сервер я получил много ошибок

[org.hibernate.ejb.Ejb3Configuration] (MSC service thread 1-8) HHH000059: Defining hibernate.transaction.flush_before_completion=true ignored in HEM 
12:34:36,777 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC00001: Failed to start service jboss.persistenceunit .... 

Когда я удалить строку собственной «набор данных»; то это работает. Поэтому, скорее всего, подход с множеством совершенно неверен.

Можете ли вы дать мне простой пример того, как вы могли бы реализовать описанное выше созвездие?

Большое спасибо! Имейте славный день!

BR

ответ

0

Хотя код и войти Отрывок вас в курсе не может быть достаточно, чтобы точно определить проблему, и предполагая, что private set<DataBean> data; вы на самом деле означает private Set<DataBean> data; (обратите внимание на заглавную «S» в Set), то дополнительно нужно аннотировать ваше имущество data с помощью @OneToMany и убедиться, что класс DataBean также правильно отображен (например, @Entity).

В более общем плане, являются следующие реквизиты для классов JPA сущностей (от The Java EE Tutorial):

Класс должен быть аннотированный с javax.persistence.Entity аннотацию.

Класс должен иметь открытый или защищенный конструктор без аргументов. Класс может иметь другие конструкторы.

Класс не должен быть объявлен окончательным.Никакие методы или постоянные переменные экземпляра должны быть объявлены окончательными.

Если экземпляр объекта передается по значению в качестве отдельного объекта, например через удаленный бизнес-интерфейс сеансового компонента, класс должен реализовать интерфейс Serializable.

Объекты могут распространять как сущности, так и не-сущности, а классы non-entity могут расширять классы сущностей.

Персистентные переменные экземпляра должны быть объявлены приватными, защищенными или package-private и могут быть доступны непосредственно только объектам методов класса. Клиенты должны получить доступ к состоянию объекта с помощью методов доступа или бизнес-методов .

+0

@OneToMany было решением =) Большое спасибо за вашу помощь! Теперь он отлично работает !! Желаю вам приятных выходных – YaCkFoU

+0

Рад узнать, что это сработало. И в этом случае вы могли бы отметить ответ как правильный :) –

Смежные вопросы