我目前在这里遇到问题,我想也许你们中的一些人可以帮助我。我正在使用 SPRING 和 HIBERNATE 开发应用程序,我的问题如下:
1 - 我首先在我的主对象中创建一个新的 AudioFile 对象(域类),然后使用 DAO 中的 hibernateTemplate.save(audioFile) 方法将其插入到数据库中。
2 - 然后我使用 DAO 的 hibernateTemplate.get(1) 方法从数据库中检索行,并将实例存储到 audioFile1 对象中。(音频文件类型)
3 - 然后我重复步骤 2并将实例存储到 audioFile2 对象中。
总之:我的主要课程是这样的:
ApplicationContext context = new ClassPathXmlApplicationContext(
"application-context.xml");
AudioFileServices audioFileServices = (AudioFileServices) context.getBean("audioFileServices");
AudioFile audioFile = new AudioFile();
audioFile.setAlbum("test");
audioFile.setArtist("test");
audioFile.setLength(1);
audioFile.setPath("test");
audioFile.setTitle("test");
AudioFile a1 = null;
AudioFile a2 = null;
try {
audioFileServices.saveAudioFile(audioFile);
a1 = audioFileServices.getAudioFile(audioFile.getIdAudioFile());
a2 = audioFileServices.getAudioFile(audioFile.getIdAudioFile());
} catch (Exception e) {
e.printStackTrace();
}
ISSUE: audioFile1 和 audioFile2 都代表同一个对象,(数据库中的同一行)但是,它们是两个不同的实例,而不是引用同一个实例的两个对象。(如我所愿)因此,对第一个对象所做的任何修改都不会影响第二个对象。(即使它们都映射到同一个数据库行)
我已正确配置应用程序上下文以将 AudioFileDAO bean 注入 AudioFileService bean 并使用服务层架构。除了这个烦人的问题外,一切都完美无缺。我还设置了事务,并且正在使用由 SPRING 注入 AudioFileDAO bean 的 sessionFactory bean。
你们中有人知道我在这里缺少什么吗?也许这是一个 HIBERNATE 配置问题?有任何想法吗?
先感谢您。(如果需要,我可以提供我的应用程序上下文、服务和 dao 代码的副本)