2011-08-12 159 views
1

现在我理解到数据库表映射我们添加:表未映射?

@Entity() 
@Table(name = "test") 
public class Test implements Serializable { 
    /** Constant - serial version UID. */ 
    public final static long serialVersionUID = 1L; 

    /** Member variable - represents the "name" field. */ 
    public String name; 
} 

但由于某些原因,当我做查询:

delete from test; 

它给了我这个错误:

15:55:54,140 ERROR [JsonFilter] javax.ejb.EJBException: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: spa_splash_page_ad is not mapped [delete from spa_splash_page_ad] 
javax.servlet.ServletException: javax.ejb.EJBException: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: spa_splash_page_ad is not mapped [delete from spa_splash_page_ad] 
    at com.pinksheets.common.web.servlet.DeleteSplashPageServlet.fetch(DeleteSplashPageServlet.java:30) 
    at com.pinksheets.common.web.servlet.DeleteSplashPageServlet.fetch(DeleteSplashPageServlet.java:17) 

任何想法为什么这样做?

+0

testValue类的代码是什么? –

+0

测试值将只是主键的变量。 – iCodeLikeImDrunk

+0

是的,但是如果您正在使用'@ IdClass',则您的主类中必须有匹配的成员。见http://download.oracle.com/javaee/5/api/javax/persistence/IdClass.html –

回答

1

delete from table test不是我知道的任何QL中的有效查询。

映射为@IdClass的类是一个复合标识,您不会直接删除它。你会删除一个具有该ID的实体。此外,由于它是@IdClass,我不确定在给它一个明确的@Table映射时会发生什么。 @IdClass是一个主键值,并且总是应该用作其他类的ID。它没有自己的表格。请参阅mapping composite ids的hibernate注释参考和正确的use of @IdClass

+0

雅我有点想出了审查表后,认为它有复合IDS ..谢谢! 仍然得到没有映射错误,即时猜测我的导师可能有做的事情 – iCodeLikeImDrunk

+0

以不同的方式因此,接下来的问题是,为什么你试图写一个删除查询,而不是简单地调用'使用Session.delete(someObject)' 。 –

+0

不要问我..我的导师希望它这样做的方式= /即使表映射它仍然给我的错误猜测生病等待我的导师过目一切 – iCodeLikeImDrunk

2
  1. 尝试:

    delete from com.mycompany.database.Test
    了解fully qualified names(这是完整的包名/路径+类名)

  2. 为什么在查询词table

  3. 同样来自@Entity()

  4. 删除()你应该保持Java约定,资本开始字母命名实体:

    class Test{} 比你可以:

    delete from fully.qualified.name.Test

  5. 确保实体是@javax.persistence.Entity而不是别的。

+0

sry这是一个错误应该不会在任何地方删除表格。 fully.qualified.name.test这是什么意思?只需键入? ()在那里,因为我用了一个高级开发人员的工作作为例子,所以她在那里,所以我补充说...以及再次尝试.. – iCodeLikeImDrunk

+0

@Joe陈 - 我编辑我的帖子。 – fatnjazzy