Java Hibernate mappatura delle eccezioni! (Impossibile determinare il tipo di: java.util.Map)
-
29-09-2019 - |
Domanda
Ho fatto una classe con nome del film con campi folowing:
@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;
annotazione di sospensione, come potete vedere, ho usato e l'oggetto è di fagioli. ma quando provo ad aprire la mia sessione Hibernate con il seguente codice ...
session = HibernateSessionFactory.getSessionFactory().openSession();
ho incontrato un problema per quanto riguarda non poteva mappare una classe Java.Util.Map. Ecco stack eccezione:
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)
Sono nuovo di ibernazione e non so esattamente cosa sta succedendo ... please help me!
Soluzione
che è perché è necessario utilizzare un po 'di implementazione jpa2! questo ragazzo ha avuto la stesso problema
Altri suggerimenti
Ho anche affrontare lo stesso problem.It è in ritardo, ma penso che sarà d'aiuto others.use @ MapKeyColumn.here è il mio semplice codice
@ElementCollection(targetClass=String.class)
@MapKeyColumn(name="Employee_Position")
private Map<String,String> position=new HashMap<String,String>();
non dovrebbero essere solo le proprietà di un tipo List<String>
?
Sembra Hibernates confusione è uguale al mio, che è, perché è Properies una mappa invece di una lista? Che cosa stai cercando di fare?
Aah vedo, è un. Non credo che è possibile mappare un primitivo meno che non si utilizza l'ultimo barattolo. https://forum.hibernate.org/viewtopic.php?t=955308 . Controllare che puntano. Potresti fare una classe chiamata come proprietà con chiave e il valore e poi usarlo? Ho avuto un problema simile e ho dovuto usare questo approccio.
Hai sia getter e setter per le proprietà?