使用 Hibernate 从类中获取 oneToMany 字段

我想从数据库中检索实体的属性列表,但出现以下异常:


org.hibernate.PropertyNotFoundException: no appropriate constructor in class MapClass

我的实体:


 public class Entity{


     //properties


    @OneToMany(mappedBy = "user", cascade={CascadeType.ALL})

   private List<Profile> profiles = new LinkedList<Profile>();


   public Entity(){}


 }

映射类:


 public class MapClass{


     //properties



   private String name;

   private List<Profile> profiles ;

   public MapClass(String name,List<Profile> profiles){

     this.name = name;

     this.profiles = profiles;

   }


 }

我的 sql 查询:


String sql =  "SELECT new MapClass(u.name,u.profiles) FROM Entity u";

return getList(MapClass.class,sql);

如果我从 MapClass 构造函数和查询中删除配置文件,我的查询将有效。我所有的类都有空的构造函数。


aluckdog
浏览 151回答 2
2回答

饮歌长啸

Hibernate 需要一个构造函数来工作:将它添加到你的类中public class Entity{&nbsp; &nbsp; //add the constructor&nbsp; &nbsp; public Entity(){ }}

蝴蝶不菲

空构造函数是 Hibernate 的要求。它使用此构造函数的反射来实例化所需的对象。&nbsp; &nbsp;//empty constructor&nbsp; &nbsp; public Entity(){&nbsp; &nbsp; }&nbsp; //empty constructor&nbsp; &nbsp; public Profile(){&nbsp; &nbsp; }在实体 bean 中创建空构造函数,即。类注释为@Entity.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java