Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Связь и тип. / 10 сообщений из 10, страница 1 из 1
29.11.2014, 17:27
    #38820322
Fryko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
Добрый вечер, имеется 2 сущности.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
  @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @Size(max = 45)
    @Column(name = "fullname")
    private String fullname;
    // @Pattern(regexp="^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$", message="Недопустимый формат номера телефона/факса (должен иметь формат xxx-xxx-xxxx)")//if the field contains phone or fax number consider using this annotation to enforce field validation
    @Size(max = 45)
    @Column(name = "phone")
    private String phone;
    @JoinColumn(name = "stitle", referencedColumnName = "idtitle")
    @ManyToOne
    private Post stitle;
-------------------
    public Staff(Integer id, String fullname, String phone, Post stitle) {
        this.id = id;
        this.fullname = fullname;
        this.phone = phone;
        this.stitle = stitle;
    }
    



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idtitle")
    private Integer idtitle;
    @Size(max = 45)
    @Column(name = "title")
    private String title;
    @OneToMany(mappedBy = "stitle")
    private Collection<Staff> staffCollection;



При попытке добавить запись, возникает ошибка.

Код: java
1.
Staff staff = new Staff(id,fullname,phone,stitle); 




Какой тип должен быть у stitle? Собственно, Post stitle, но как поместить туда число?
...
Рейтинг: 0 / 0
30.11.2014, 10:59
    #38820569
Fryko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
up

Как же в Post stitle занести число?
...
Рейтинг: 0 / 0
30.11.2014, 12:36
    #38820621
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
Frykoup

Как же в Post stitle занести число?А что это за класс Post ? Для начала нужно поглядеть на реализацию (исходники) этого класса: конструкторы и т.п.
...
Рейтинг: 0 / 0
30.11.2014, 12:43
    #38820626
Fryko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
UsmanFrykoup

Как же в Post stitle занести число?А что это за класс Post ? Для начала нужно поглядеть на реализацию (исходники) этого класса: конструкторы и т.п.

@OneToMany(mappedBy = "stitle")

@JoinColumn(name = "stitle", referencedColumnName = "idtitle")
@ManyToOne
private Post stitle;

Это поле связанное с idtitle- в другой таблице.
Само поле stitle типа int, но при попытки туда что-либо засунуть:
int cannot be converted to Post.
...
Рейтинг: 0 / 0
30.11.2014, 12:44
    #38820627
Fryko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
FrykoUsmanпропущено...
А что это за класс Post ? Для начала нужно поглядеть на реализацию (исходники) этого класса: конструкторы и т.п.

@OneToMany(mappedBy = "stitle")

@JoinColumn(name = "stitle", referencedColumnName = "idtitle")
@ManyToOne
private Post stitle;

Это поле связанное с idtitle- в другой таблице.
Само поле stitle типа int, но при попытки туда что-либо засунуть:
int cannot be converted to Post.

При изменение private Post stitle на private Integer stitle - вся связь рушится и приложение уже не запустить.
...
Рейтинг: 0 / 0
30.11.2014, 13:37
    #38820653
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
FrykoСобственно, Post stitle, но как поместить туда число?Скорее всего как-то так:
Код: java
1.
2.
3.
Post stitle = new Post();
stitle.setId(100500); // наугадЪ !
Staff staff = new Staff(id,fullname,phone,stitle);
...
Рейтинг: 0 / 0
30.11.2014, 17:16
    #38820756
Fryko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
Usman,

Огромное спасибо, помогло. Но возникла другая проблема. Стал хромать вывод этого самого title из Post.

Он отображается только после Запуска(Run/Сборка) приложения. fullname и phone выводит сразу, title - нет.


В Jsp -
Код: java
1.
2.
3.
4.
5.
6.
7.
 <c:forEach items="${allStaff}" var="sta">
                    <tr>
                        <td>${sta.id}</td>
                        <td>${sta.fullname}</td>
                        <td>${sta.phone}</td>
                        <td>${sta.stitle}</td>
  </c:forEach>


Вывод идёт из-за:
Код: java
1.
2.
3.
4.
   @Override
    public String toString() {
        return title;
    }



В сущности Post
...
Рейтинг: 0 / 0
30.11.2014, 17:38
    #38820764
Fryko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
Проблема была решена. Usman , спасибо.
...
Рейтинг: 0 / 0
30.11.2014, 18:46
    #38820788
Fryko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
Появился следующий вопрос. Как вывести 1 запись, как использовать запросы в бинах?

Вывод должен отличаться от вывода 1 записи?

Код: java
1.
2.
3.
 public List<Staff> getAllStaff() {
        return em.createNamedQuery("Staff.findAll").getResultList();
    }



Вывод всех записей. Как будет правильно использовать запрос, для выборки по id?

Код: java
1.
2.
3.
 public List<Staff> getAllStaffById(int id) {
        return em.createNamedQuery("SELECT s from Staff WHERE s.id="+id).getResultList();
    }



Выдаёт - exception

javax.ejb.EJBException
...
Рейтинг: 0 / 0
30.11.2014, 18:59
    #38820794
Fryko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь и тип.
Проблема решилась выводом
${sta[0]}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Связь и тип. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]