[hibernate-issues] [Hibernate-JIRA] Created: (JPA-11) @Lob annotation applies to both key and value of Map

Panayiotis Karabassis (JIRA) noreply at atlassian.com
Sun Jan 23 23:51:05 EST 2011


@Lob annotation applies to both key and value of Map
----------------------------------------------------

                 Key: JPA-11
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/JPA-11
             Project: Java Persistence API
          Issue Type: Bug
         Environment: Hibermate 3.6.0.Final
MySQL
            Reporter: Panayiotis Karabassis


When using the @Lob annotation on a java.util.Map I find that both the value and key of the Map are mapped to a BLOB. This is in violation of the JPA 2.0 specification which states:

{quote}The Lob annotation may be used in conjunction with the Basic annotation or with the ElementCollection[100] annotation when the element collection value is of basic type.
...

[100] If the element collection is a Map, this applies to the map value.{quote}

To reproduce:

{quote}@Entity
public class Entry
{
    @Id @GeneratedValue
    private long identifier;

    @ElementCollection
    @Column(nullable = false)
    private Map<String, String> titles;

    @ElementCollection
    @Column(nullable = false)
    @Lob
    private Map<String, String> contents;

    // Getters and setters, other fields and methods
}{quote}

This produces the following error during schema creation:

{quote}Unsuccessful: create table myblog.Entry_contents (Entry_identifier bigint not null, contents longtext not null, contents_KEY longtext, primary key (Entry_identifier, contents_KEY)) type=InnoDB
BLOB/TEXT column 'contents_KEY' used in key specification without a key length{quote}

Workarounds include defining column type with @MapKeyColumn(columnDefinition = "...") or using @Embeddable as a wrapper for values. (thanks to axtavt and Sean Patrick Floyd)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list