Здравствуйте у меня есть свой класс энтерпрайз и роли, с этим кодом:Аннотация исключение Hibernate
@Entity
@Table(name = "enterprises")
public class Enterprise implements Serializable{
@Id
@Column(name = "user_name")
private String userName;
private String name;
@Column (name = "tax_id")
private String taxId;
private String email;
@Column (name = "contact_name")
private String contactName;
@Column (name = "contact_surname")
private String contactSurname;
private String phone;
@Column (name = "enabled_account")
private Boolean enabledAccount;
@ManyToMany(targetEntity = Role.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "enterprise_role", joinColumns = {
@JoinColumn(name = "id_enterprise", nullable = false, updatable = false) },
inverseJoinColumns = { @JoinColumn(name = "id_role",
nullable = false, updatable = false) })
private List<Role> roles;
@Column (name = "enterprise_description")
private String enterpriseDescription;
private String password;
public Enterprise() {
roles = new ArrayList<Role>();
}
//the getters and setters
А моя роль класса:
@Entity
@Table (name = "roles")
public class Role implements Serializable {
@Id
@Column (name = "id_role")
private Integer id;
@Column (name = "role_type")
private String roleType;
private String description;
public Role() {
}
Когда я сохранить объект у не проблема, но когда я пытаюсь выполнить запрос: от заказа предприятия по user_name алфавиту
Получить эту ошибку:
org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.efix.model.Enterprise.roles[com.efix.model.Role]
at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1068)
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:600)
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:541)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
И я определил эти объекты в файле конфигурации hibernate.xml, указав на класс со всем путем, например com.example.Enterprise или com.example.Role.
Может ли любое тело, почему это так? Заранее спасибо
Мой hibernate.cfg является:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/prueba_efix</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">postgres</property>
<mapping class="com.efix.model.Enterprise"/>
<mapping class="com.efix.model.Role"/>
</session-factory>
</hibernate-configuration>
И файл конфигурации я генерировать с Netbeans на HibernateUtil.
Пожалуйста, покажите нам свой файл 'hibernate.xml' и вашу конфигурацию' Конфигурация'. –
Я редактирую сообщение и помещаю hibernate.cfg, HibernateUtil по умолчанию – user1977204
Я считаю, что вы можете удалить свойство targetEntity и попробовать это. – Zeus