JPA mapowanie do mapy

0

Witam

Mam taki kod w encji Example:

 
    @OneToMany
    @MapKeyColumn(name="STRING_KEY")
    public Map<String, Book> getBookMap() {
        return bookMap;
    }

Book jest encja.

Robie sobie testowy zapis do bazy:

 Example example = new Example();
        
        Book b1 = new Book();
        b1.setAuthor("author x1");
        b1.setTitle("title x1");
        b1.setRandomNumber(new Long(random.nextInt(100)));
        em.persist(b1);
        example.getBookMap().put("book 1", b1);
        
        Book b2 = new Book();
        b2.setAuthor("author x2");
        b2.setTitle("title x2");
        b2.setRandomNumber(new Long(random.nextInt(100)));
        em.persist(b2);
        example.getBookMap().put("book 2", b2);
        
        Book b3 = new Book();
        b3.setAuthor("author x3");
        b3.setTitle("title x3");
        b3.setRandomNumber(new Long(random.nextInt(100)));
        em.persist(b3);
        example.getBookMap().put("book 3", b3);
        
        em.persist(example);

Po wykonaniu powyzszego wszystko ladnie zapisuje sie do bazy poza jedna rzecz - kluczem dla mapy. Pomimo tego, ze w kazdym przypadku jest ustawiany jako book x to kolumna ktora powinna zawierac ten klucz jest pusta.

Kiedy sobie testowalem mapowanie Map<String, String>, Map<String, Enum> to nie bylo tego problemu ale dla Map<String, @Entity> juz cos nie dziala.

Wykorzystuje EclipseLink. Zauwazylem juz, ze np nie dziala z nim @OrderBy dla @ElementColletion.
Czy to tez jakis bug tego providera czy cos zle robie?

0

Generalnie czytam Pro JPA2: Mastering Java Persistence i zrobilem sobie przyklad na bazie tego w ksiazce.
To co dales w linku jest mi znane. Nadal natomiast nie wiem czemu mi nie zapisuje klucza kiedy mam <String, @Entity> :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1