KarleKremen
@KarleKremen
Игнорирую Bootstrap

Почему Hibernate не видит mapping?

persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/persistence"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
                                 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
            version="1.0">
    <persistence-unit name="Protium" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.connection.provider_class" value="org.hibernate.c3p0.internal.C3P0ConnectionProvider" />
        </properties>
    </persistence-unit>
</persistence>

PAUser.java
package net.protium.modules.pauth.database.orm;

import net.protium.modules.pauth.oauth2.OAuthType;

import javax.persistence.*;


@SuppressWarnings("JpaDataSourceORMInspection")
@Entity
@Table(name = "pauth_users")
public class PAUser {

	//region DisplayType definition
	@Id
	@Column(name = "user_id", nullable = false, unique = true)
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer id;

	@Column(name = "login", nullable = false, unique = true)
	private String login;

	@Column(name = "email", nullable = false, unique = true)
	private String email;

	@Column(name = "password")
	private String password;

	@Column(name = "first_name")
	private String firstName = "";

	@Column(name = "middle_name")
	private String middleName = "";

	@Column(name = "last_name")
	private String lastName = "";

	@Column(name = "oauth_bind")
	private String oauthBind;

	@Column(name = "oauth_type")
	private OAuthType oauthType;
	//endregion

	public PAUser(String login, String email, String password, String firstName, String middleName, String lastName, String googleBind) {
		this.login = login;
		this.email = email;
		this.password = password;
		this.firstName = firstName;
		this.middleName = middleName;
		this.lastName = lastName;
		this.oauthBind = googleBind;
	}

	public PAUser( ) {
	}

	//region Getters and Setters
	public Integer getId( ) {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getLogin( ) {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getEmail( ) {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getPassword( ) {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getFirstName( ) {
		return firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public String getMiddleName( ) {
		return middleName;
	}

	public void setMiddleName(String middleName) {
		this.middleName = middleName;
	}

	public String getLastName( ) {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getOauthBind( ) {
		return oauthBind;
	}

	public void setOauthBind(String googleBind) {
		this.oauthBind = googleBind;
	}

	public OAuthType getOauthType( ) {
		return oauthType;
	}

	public void setOauthType(OAuthType oauthType) {
		this.oauthType = oauthType;
	}

	//endregion
}


При вызове этого кода
TypedQuery < PAUser > query = entityManager
				.createQuery(
					"select user " +
						"from PAUser user " +
						"where user.login=:login",
					PAUser.class);

			System.out.println(query);

			user = query.setParameter("login", login)
				.getSingleResult();


Получаю вот это:
org.hibernate.hql.internal.ast.QuerySyntaxException: PAUser is not mapped [select user from PAUser user where user.login=:login]


Как так?

UPD:
Одна деталь: все эти классы лежат в отдельном JARe, который динамически подгружается в основной. Так вот в основном и лежит persistence.xml.
  • Вопрос задан
  • 580 просмотров
Решения вопроса 1
@aol-nnov
Одна деталь: все эти классы лежат в отдельном JARe

stackoverflow.com/a/7443665
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы