我有DAO课程,正在扩展'GenericDAO'
Generic dao具有带getter和setter的LanguageId变量。
我从会话中获得了我的语言。
有没有办法直接在genericDAO
设置我的语言ID。所以每次我使用dao类时我都不必从我的控制器传递languageId?
最后我想要的是,我应该能够在我的dao对象中getLanguageId()
。
答案 0 :(得分:3)
通常DAO被设置为单例,因此只有一个实例可以使用所有不同的线程。如果是这种情况,那么你不能为一个用户设置语言,而其他用户可能没有受到影响,并将其作为方法参数传递是唯一安全的方法,以确保其他线程不会无意中得到错误的语言ID 。因此,您是否能够做您想做的事情取决于您的DAO的范围。
答案 1 :(得分:0)
DAO的重点是无状态,而会话代表一些有状态信息。所有有状态信息都应该通过方法参数传递给DAO。
所以,如果你仍然希望在DAO中使用getLanguageId(),那么你注定要为每个会话创建DAO实例并在创建过程中为其注入languageId。