Java Hibernateマッピング例外! (java.util.mapのタイプを決定できませんでした)
-
29-09-2019 - |
質問
私は、従来のフィールドを持つ映画の名前でクラスを作りました:
@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;
ご覧のとおり、私は冬眠注釈を使用し、オブジェクトはBeanです。しかし、次のコードで冬眠セッションを開こうとするとき...
session = HibernateSessionFactory.getSessionFactory().openSession();
java.util.mapクラスをマッピングできないという問題が発生しました。これが例外スタックトレースです:
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)
私は冬眠が初めてで、何が起こっているのか正確にはわかりません...助けてください!
解決
これは、JPA2の実装を使用する必要があるためです!この男は 同じ問題
他のヒント
私も同じ問題に直面しています。それは遅れていますが、それは他の人に役立つと思います。 @mapkeycolumn。
@ElementCollection(targetClass=String.class)
@MapKeyColumn(name="Employee_Position")
private Map<String,String> position=new HashMap<String,String>();
プロパティだけではありません List<String>
タイプ?
Hibernatesの混乱は私のものと同じであるように聞こえます。そこで何をしようとしていますか?
ああ、そのa。最新の瓶を使用していない限り、原始をマップできるとは思いません。 https://forum.hibernate.org/viewtopic.php?t=955308. 。そのリンクを確認してください。キーと価値のあるプロパティとして呼ばれるクラスを作成して、それを使用できますか?同様の問題があり、そのアプローチを使用する必要がありました。
プロパティ用のゲッターとセッターの両方がありますか?
所属していません StackOverflow