Spring / Hibernate / Flex = Неизвестная сущность - PullRequest
0 голосов
/ 30 июня 2011

У меня небольшая проблема с пружиной + hibernate, выдавшей ошибку
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.rottmanj.domain.user.UserAccount; nested exception is org.hibernate.MappingException: Unknown entity: com.rottmanj.domain.user.UserAccount

Я отладил этот код и исследовал проблему, но похоже, что все нормальные опубликованные исправления дляэта проблема не работает для меня.Любая помощь с этим очень ценится.

У меня есть этот дао, который должен сохранить правильно, но вместо этого выдает ошибку выше.

@Override
public UserAccount save(UserAccount obj) 
{
    List<UserAccount> userList = template.findByExample(obj);
    try {
        if (!userList.isEmpty()) {
            throw new Exception(
                    "A user with these credentials already exists. Please try again.");
        } else {
            template.saveOrUpdate(obj);
        }
    } catch (Exception e) {
        logger.debug(e.toString());
    }

    return obj;
}

Этот дао вызывается службой ниже, этоотображается как место назначения удаленного взаимодействия.

@Service
@RemotingDestination(channels = { "my-amf" })
public class UserAccountService {

private UserAccountDAO dao = null;
private static Logger logger = Logger.getLogger(UserAccountService.class);

@Autowired
public void setDao(UserAccountDAO dao)
{
    this.dao = dao;
}

@RemotingInclude
public UserAccount save(UserAccount dataObject)
{
    return this.dao.save(dataObject);
}

@RemotingInclude
public String test(String dataString)
{
    logger.debug(dataString.toString()); 
    return "This is a Test for " + dataString;
}
}

Моя сущность аннотирована, поэтому она не использует файлы сопоставления.Я также подтвердил, что использую правильную аннотацию lib (import javax.persistence.Entity)

package com.rottmanj.domain.user;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

@Entity
@Table(name = "UserAccount", uniqueConstraints = @UniqueConstraint(columnNames =     "UserName"))
public class UserAccount implements java.io.Serializable {
    ...entity cdoe
}

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Вы все еще должны указать в файле конфигурации Spring или в файле отображения гибернации о существовании этого пакета (или класса), чтобы сканирование могло произойти. Например, если вы используете AnnotationSessionFactoryBean из Spring, вам нужно будет включить свойство "packagesToScan", чтобы указать, какие пакеты следует сканировать.

Если это уже сделано, можете ли вы прикрепить файлы конфигурации Spring, относящиеся к Hibernate?

1 голос
/ 30 июня 2011

Включили ли вы учетную запись пользователя в файл persistence.xml? Обычно это первое место, куда я смотрю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...