I created a class called Movie with the following fields:
@Id @GeneratedValue private Long id; private String name; @ElementCollection(targetClass = String.class) private Map<String, String> properties; private Double rate; private Integer votersCount; private Date releaseDate; private Integer runtime; @ManyToMany @JoinTable(name = "movie_director") @IndexColumn(name = "directorIndex") private List<Person> directors; @ManyToMany @JoinTable(name = "movie_writer") @IndexColumn(name = "writerIndex") private List<Person> writers; @OneToMany @IndexColumn(name = "roleIndex") private List<MovieRole> movieRoles; @ManyToMany @JoinTable(name = "movie_genre") @IndexColumn(name = "genreIndex") private List<Genre> genres;
as you can see i used hibernate annotation and bean object. but when I try to open a hibernate session with the following code ...
session = HibernateSessionFactory.getSessionFactory().openSession();
I had a problem related to the inability to map the Java.Util.Map class. Here is the exception stack trace:
org.hibernate.MappingException: Could not determine type for: java.util.Map, for columns: [org.hibernate.mapping.Column(properties)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253) at org.hibernate.mapping.Property.isValid(Property.java:185) at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:410) at org.hibernate.mapping.RootClass.validate(RootClass.java:192) at org.hibernate.cfg.Configuration.validate(Configuration.java:1099) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1284) at main.HibernateSessionFactory.getSessionFactory(HibernateSessionFactory.java:29) at main.MainClass.main(MainClass.java:26)
I am new to sleep mode and do not know exactly what is happening ... please help me!
java hibernate-mapping hibernate-annotations
Ehphan
source share