Hibernate 我们可以在抽象实体级别创建JPQL查询吗?
我有一个抽象类Log.java和两个实现类CreateLog.java和UpdateLog.java,这两个表有一些条目,我试图在抽象实体级别获取这些条目。我的类是:Hibernate 我们可以在抽象实体级别创建JPQL查询吗?,hibernate,jpql,Hibernate,Jpql,我有一个抽象类Log.java和两个实现类CreateLog.java和UpdateLog.java,这两个表有一些条目,我试图在抽象实体级别获取这些条目。我的类是: import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author user
*/
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@XmlRootElement
public abstract class Log implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "id")
private Integer id;
@Column(name = "log_date")
@Temporal(TemporalType.TIMESTAMP)
private Date logDate;
}
我想获取所有日志,所以查询是:
上述查询出现错误org.hibernate.exception.DataException:无法执行查询
请仅建议对其进行JPQL查询 你能发布完整的stacktrace吗?谢谢Predrag Maric。事实上,在你更新之后,我看到了我的日志,所以我发现了问题。谢谢!
package com.kommbox.types;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "create_logs")
@XmlRootElement
public class CreateLog extends Log
{
}
package com.kommbox.types;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "update_logs")
@XmlRootElement
public class UpdateLog extends Log
{
}
public void getAllLogs()
{
try
{
List<Log> allLogs = em.createQuery("select log from com.types.Log log").getResultList();
if (allLogs.size() > 0)
{
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}