Question

J'ai fait une classe avec le nom de film avec champs suivants:

    @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;

comme vous pouvez le voir, je l'ai utilisé l'annotation mise en veille prolongée et de l'objet est le haricot. mais quand je tente d'ouvrir ma session de mise en veille prolongée avec le code suivant ...

session = HibernateSessionFactory.getSessionFactory().openSession();

Je rencontre un problème concernant la carte ne pouvait pas une classe Java.Util.Map. Voici trace de la pile d'exception:

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)

Je suis nouveau mise en veille prolongée et ne savent pas exactement ce qui se passe ... S'il vous plaît aidez-moi!

Était-ce utile?

La solution

c'est parce que vous devez utiliser une implémentation de jpa2! ce gars-là avait même problème de

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top