假设我有Foo这样的实体-
package com.some.company.model; // imports @Entity public class Foo{ @Id private Long id; // getters / setters and other properties omitted }
因此,在通过HQL处理Entity时,我更喜欢使用完全限定的类名来引用Entity,例如-
entityManager.createQuery(String.format("delete from %s where id = :id", Foo.class.getName())) .setParameter("id", fooId) .executeUpdate();
我注意到@Entity注释中有一件事情-默认情况下,name属性具有实体类的标准名称。这让我想起为什么名字不合格? 在HQL中,我应该使用不合格名称还是完全合格名称?
@Entity
使用完全限定的名称没有意义,因为Hibernate不允许重复的实体名称。因此,如果您有不同名称的不同实体,则使用不同的程序包。Hibernate将抛出DuplicateMappingException。