【发布时间】: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