【问题标题】:Spring - AutoWired object NullPointerExpection, Sequence GeneratorSpring - AutoWired 对象 NullPointerExpection,序列生成器
【发布时间】:2014-08-18 11:28:26
【问题描述】:

我们有以下错误

java.lang.NullPointerException
at sequence.MySequence.generate(MySequence.java:23)

我的序列生成器

    @Component
    public class MySequence implements IdentifierGenerator {

    @Autowired
    SequenceDAO sequenceDAO;

    public Serializable generate(SessionImplementor session, Object object)
            throws HibernateException {

        <-- sequenceDAO.getNextValue -->

        return sequenceNextValue;
    }
    }

SequenceDAO

    public interface SequenceDAO {

    Long getNextValue();

    }

SequenceDAOImpl

    @Repository
    @Transactional(readOnly = false)
    public class SequenceDAOImpl implements SequenceDAO {

    @Autowired
    SessionFactory sessionFactory;

    @Override
    @Transactional(readOnly = true)
    public Long getNextValue() {

        <-- getNextValue -->

        return nextValue;
    }
    }

配置

<context:annotation-config />
<context:component-scan base-package="controller" />
<context:component-scan base-package="dao" />
<context:component-scan base-package="service" />
<context:component-scan base-package="sequence" /> <-- is there MySequence

我不知道我做错了什么。作为控制器休息,服务,DAO 工作没有问题 - @autowired 工作正常。只是这里我不知道为什么会这样。

序列生成器所需的一切(Oracle 数据库将 id 作为字符串; 因此我不能直接从数据库中使用生成器)

@Id
@GenericGenerator(name="seqid", strategy="sequence.MySequence")
@GeneratedValue(generator="seqid")
@Column(name = "ID", unique = true, nullable = false, length = 32)
public String getId() {
    return this.id;
}

有什么建议吗?

【问题讨论】:

  • 请显示堆栈跟踪和来自MySequence.generate() 的缺失代码。

标签: java spring oracle hibernate spring-mvc


【解决方案1】:

生成器类是由 Hibernate 实例化的,所以它不是由 spring 管理的,不会发生注入。您必须在方法generate() 中直接实现来自SequenceDAO 的代码(您会在参数中收到一个会话,您可以从中执行查询)或找到通过静态方法访问spring 内容的方法并获取您的SequenceDAO 来自它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2015-01-06
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    相关资源
    最近更新 更多