Hi
I tryed this with the following code:
@Entity
public class TestEntity {
@Id @GeneratedValue private int id;
@OneToMany(cascade = { CascadeType.ALL })
@BasicMap(fetch = FetchType.EAGER, keyColumn = @Column(name = "key"),
valueColumn = @Column(name = "value"))
@CollectionTable(name = "map")
private Map<String, TestHolder> map;
public void setMap(Map<String, TestHolder> map) {
this.map = map;
}
public Map<String, TestHolder> getMap() {
return map;
}
}
@Entity
public class TestHolder {
@Id @GeneratedValue private int id;
private String value;
public void setValue(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
private void test() {
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
TestEntity testEntity = new TestEntity();
Map<String, TestHolder> map = new HashMap<String, TestHolder>();
TestHolder value = new TestHolder("value");
map.put("key", value );
testEntity.setMap(map );
em.persist(testEntity);
em.getTransaction().commit();
em.close();
}
Definition of table map:
CREATE TABLE MAP
(
ID NUMBER(10) NOT NULL,
VALUE VARCHAR2(255 BYTE),
KEY VARCHAR2(255 BYTE)
)
Then I get the error message:
Internal Exception: java.sql.SQLException: Ungültiger Spaltentyp
Error Code: 17004
Call: INSERT INTO map (ID, value, key) VALUES (?, ?, ?)
bind => [1, bom.TestHolder@e34726, key]
How can I store the object as entity?
Thanks a lot!
Regards Adrian
Zitat von Tom Ware <
tom.ware@...>:
> You will likely need an extra object to do this. Something like:
>
> private Map<String, ListHolder> instructions;
>
> @Entity
> public class ListHolder{
> @id
> private int id;
>
> private List instructions;
>
> ...
> }
>
> It should be pretty easy to write some business methods that make
> this mapping
> transparent to the users of the API.
>
> -Tom
>
>
adi@... wrote:
>> Hi
>>
>> I persisted a map like this:
>> private Map<String, String> instructions;
>>
>> How can I persist a map that contains a List as value?
>> private Map<String, List<String>> instructions;
>>
>> Thanks a lot!
>>
>> Regards Adrian
>>
>> _______________________________________________
>> eclipselink-users mailing list
>>
eclipselink-users@...
>>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users> _______________________________________________
> eclipselink-users mailing list
>
eclipselink-users@...
>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users>
_______________________________________________
eclipselink-users mailing list
eclipselink-users@...
https://dev.eclipse.org/mailman/listinfo/eclipselink-users