[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