实际上,在我的基于 Hibernate Annotation 的应用程序中,有 ValueObject 类(Bean 类),这些是..
public Class CourseVO{
@Column(name="NAME")
private String name;
}
SKillsetVO 类
public Class SkillsetVO{
@ManyToOne
@JoinColumn(name="COURSE_ID", insertable=false, updatable=false)
private CourseVO courseSID;
@ManyToMany(cascade = {CascadeType.ALL}, fetch=FetchType.EAGER)
@JoinTable(name="SKILLSET_COURSE",joinColumns={@JoinColumn(name="SKILLSET_ID",referencedColumnName="S_ID")},inverseJoinColumns={@JoinColumn(name="S_ID")})
private Set<CourseVO> course;}
VO类(class)时间表
public class TimetableVO{
@ManyToOne
@JoinColumn(name="SKILLSET_ID", insertable=false, updatable=false)
private SkillsetVO skillsetSID;
}
注意上面名为 S_ID 的代码 Primarikey 包含另一个名为 AbstractVO 的类,因此我的所有类都扩展了此 AbstractVO 类,因此主键创建没有问题... 现在,在我的业务逻辑中,我编写了一个查询:
select tt from TimetableVO tt join tt.skillsetSID.course c where c.name in (:courseNames)
然后我给出 :courseName like 'java' 然后它给出错误
SKILLSET_COURSE 表不存在
是的,这是正确的,我只根据 ValueObjects 创建三个表...但是 hibernate 可以做到这一点..请帮我编写查询...
最佳答案
使用hbm2ddl
属性来创建
或更新
。或者手动打开控制台并发出 CREATE
语句。
关于java - 基于 Hibernate 注解的查询执行错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13512494/