Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / ejb entity составной ключ / 12 сообщений из 12, страница 1 из 1
09.07.2013, 10:07:33
    #38325056
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
Добрый день! такой вопрос , как реализовать мапинг (нужно описать все аннотациями )

Есть такая модель : Хозяин master (таблица и объект)

у него есть Id и name

И список животных.

Животные описаны в базе как id хозяина, id животного у хозяина (1 й питоме, второй итд) и кличка !

Как замапить такой список в объекте Parent
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
@Entity

public class Master implements Serializable{
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String Name;

 @OneToMany
   private List<Pet> pets  = new ArrayList<Pet>();

...
}


public class Pet implements Serializable{
    private static final long serialVersionUID = 1L;

    private Long masterId;

    private Long petId;

    private String Name;

...
}




К примеру в таблице есть

Master :
id name1 jo 2 sam

Pet
masterid petid name1 1 cat 1 2 dog2 1 cat2 2 dog2 3 fish
...
Рейтинг: 0 / 0
09.07.2013, 10:12:41
    #38325067
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
@Embeddable и @EmbeddedId
Но, по-моему оно того не стоит. Проще не использовать композитные ключи. У вас же и так у Pet есть petId.
А masterId+petId+name это только unique constraint, а не ключ.
...
Рейтинг: 0 / 0
09.07.2013, 10:44:18
    #38325116
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
Blazkowicz@Embeddable и @EmbeddedId
Но, по-моему оно того не стоит. Проще не использовать композитные ключи. У вас же и так у Pet есть petId.
А masterId+petId+name это только unique constraint, а не ключ.

Что то у меня с EmbeddedId не заработало :(

я знаю что было бы лучше чтобы у Pet - petId - был уникальный .

но проблема в том что я не владелец базы - у меня к ней есть доступ ...

а в базе на petId - была зашита логика - номер животного у хозяина .
...
Рейтинг: 0 / 0
09.07.2013, 10:46:57
    #38325119
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
Atum1а в базе на petId - была зашита логика - номер животного у хозяина .
Руки бы поотрывать. В одном месте entityId это PK, а в другой - Sequence #.
Что не заработало с Embedded? Как пробовали?
...
Рейтинг: 0 / 0
09.07.2013, 13:39:13
    #38325482
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
BlazkowiczAtum1а в базе на petId - была зашита логика - номер животного у хозяина .
Руки бы поотрывать. В одном месте entityId это PK, а в другой - Sequence #.
Что не заработало с Embedded? Как пробовали?

Добавил JoinColumn
Код: java
1.
2.
3.
 @OneToMany
 @JoinColumn(name = "masterId")
  private List<Pet> pets  = new ArrayList<Pet>();




и создал класс PetPK

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
@Embeddable 
public class PetPK {
    private Long masterId;
    private Long petId;
}

public class Pet implements Serializable{
    private static final long serialVersionUID = 1L;

   @Embedded // @EmbeddedId
    private PetPK petpk;

    private String Name;
...
Рейтинг: 0 / 0
09.07.2013, 13:41:14
    #38325487
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
А почему вы Name в PetPK не включили? И почему поля в PetPK и Pet без маппинга?
...
Рейтинг: 0 / 0
09.07.2013, 17:12:33
    #38325851
breath
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
а Composite Primary Key не пойдет ?
http://www.objectdb.com/java/jpa/entity/id#Composite_Primary_Key_
...
Рейтинг: 0 / 0
09.07.2013, 17:42:46
    #38325934
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
BlazkowiczА почему вы Name в PetPK не включили? И почему поля в PetPK и Pet без маппинга?

а можно как-то обойтись без класса PetPK ?
...
Рейтинг: 0 / 0
09.07.2013, 18:55:41
    #38326016
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
Atum1BlazkowiczА почему вы Name в PetPK не включили? И почему поля в PetPK и Pet без маппинга?

а можно как-то обойтись без класса PetPK ?
14542692
...
Рейтинг: 0 / 0
12.07.2013, 11:25:39
    #38329006
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
BlazkowiczА почему вы Name в PetPK не включили? И почему поля в PetPK и Pet без маппинга?


Огромное спасибо за ответы и помощь!

ps - имя животного не уникально - ну есть у хозяина бага - называет он всех одним именем :)
...
Рейтинг: 0 / 0
12.07.2013, 11:29:49
    #38329019
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
Atum1ps - имя животного не уникально - ну есть у хозяина бага - называет он всех одним именем :)
И что? На композитный у никальный ключ это никак не повлияет. Вы в первом посте написали что кличка - часть составного ключа, но в коде этот факт игнорируете. Мне всё равно. Но вы хоть сами с собой договоритесь что именно у вас ключ.
...
Рейтинг: 0 / 0
30.08.2013, 09:41:38
    #38381955
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ejb entity составной ключ
Вопрос по описанию : в чем разница ?


Есть бин TestGroup у него коллекция :

Код: java
1.
2.
3.
4.
    
   @OneToMany(fetch = FetchType.LAZY)
    @JoinColumn(name = "TEST_GROUP_ID")
    private List<TestGroupRecipient> groupRecipients  = new ArrayList<TestGroupRecipient>();



и

Код: java
1.
2.
3.
    @ElementCollection
    @JoinTable(name = "TEST_GROUP_RECIPIENT")
    private List<TestGroupRecipient> groupRecipients  = new ArrayList<TestGroupRecipient>();
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / ejb entity составной ключ / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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