Error when trying to map a Set type object (Property access method and JPA annotation) not duplicated tho
为了完成另一个任务,我需要重新定义POJO类并使用属性访问来利用我提到的类中的JavaFX属性,但是我面临着这个错误。
1 | org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: deposito, for columns: [org.hibernate.mapping.Column(productoses)] |
我已经尝试过org.hibernate.mappingeexception:中提到的解决方案无法确定:java.util.set和org.hibernate.mappingeexception:的类型无法确定:java.util.list的类型,但仍然无法使其正常工作。
这是我的OneTomany实体类,这是我的Manytoone类。
这就是stacktrace。
1 2 3 4 5 6 7 8 9 10 11 12 | org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: deposito, for columns: [org.hibernate.mapping.Column(productoses)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:455) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:422) at org.hibernate.mapping.Property.isValid(Property.java:226) at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:597) at org.hibernate.mapping.RootClass.validate(RootClass.java:265) at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:451) at org.hibernate.boot.internal.MetadataImpl.buildSessionFactory(MetadataImpl.java:170) at ajfmo.inventario.utils.HibernateUtil.getSessionFactory(HibernateUtil.java:19) at ajfmo.inventario.DAO.ProductDAO.<init>(ProductDAO.java:20) at ajfmo.inventario.view.MainView.<init>(MainView.java:60) |
号编辑
这是我的冬眠课程。这是出现在堆栈跟踪中的DAO。
提前谢谢,这是我第一个使用Hibernate的项目…或者我的第一个项目。
在你的
这里有:
1 2 3 4 5 6 | @OneToMany(fetch = FetchType.LAZY, mappedBy ="deposito") private Set<Productos> productoses = new HashSet<Productos>(0); public Set<Productos> getProductoses() { return this.productoses; } |
在
1 2 3 4 5 6 7 8 9 10 11 12 | private ObjectProperty<Deposito> deposito; private Deposito _deposito; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) @JoinColumn(name ="deposito_producto", referencedColumnName ="descripcion_deposito", nullable = false) public Deposito getDeposito() { if (deposito == null) { return _deposito; } else { return deposito.get(); } } |
号
1 2 3 4 5 6 7 8 | @Column(name ="descripcion_deposito", unique = true, nullable = false, length = 45) public String getDescripcionDeposito() { if (descripcionDeposito == null) { return _descripcionDeposito; } else { return descripcionDeposito.get(); } } |
我不知道您的列名是什么,但是
1 2 3 4 5 6 7 8 9 | @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) @JoinColumn(name ="deposito_producto", referencedColumnName ="idDeposito", nullable = false) public Deposito getDeposito() { if (deposito == null) { return _deposito; } else { return deposito.get(); } } |
。