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!

È stato utile?

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à?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top