Pregunta

Me han hecho una clase con el nombre de la película con campos 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;

como se puede ver, he utilizado la anotación de hibernación y el objeto es de frijol. pero cuando intento abrir mi sesión de hibernación con el siguiente código ...

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

Me encuentro con un problema en cuanto no se pudo asignar una clase Java.Util.Map. Aquí es seguimiento de la pila excepción:

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)

Soy nuevo en hibernación y no saben exactamente lo que está pasando ... por favor, ayúdame!

¿Fue útil?

Solución

Eso es porque usted tiene que utilizar alguna aplicación jpa2! este individuo tenía el mismo problema

Otros consejos

También se enfrentan a la misma problem.It es tarde, pero creo que va a ayudar a nadie.Uselo @ MapKeyColumn.here es mi código simple

@ElementCollection(targetClass=String.class)
@MapKeyColumn(name="Employee_Position")
private Map<String,String> position=new HashMap<String,String>();

¿No debería propiedades simplemente ser un tipo List<String>?

Parece que hiberna confusión es la misma que la mía, que es, por qué es Properies un mapa en lugar de una lista? ¿Qué es exactamente estás tratando de hacer allí?

Ah veo, es una. Yo no creo que se pueda asignar una primitiva menos que esté utilizando la última jarra. https://forum.hibernate.org/viewtopic.php?t=955308 . Compruebe que enlazan. Podría hacer una clase llamada como propiedades con clave y el valor y luego usarlo? Tuve un problema similar y tuve que usar ese enfoque.

¿Tiene tanto get y set para las propiedades?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top