您能告訴我該怎麼做最好? 我如何在Web應用程序中創建一個實體的新實例,如果我只有接口..Java EE:EJB實體,Web Standalone
我:
- EJB(3.1)項目
- Web項目
我有一個EJB項目像:
User.java
@Entity
public class User {
//variables.. getters and setters...
}
UserManagerBean.java
@Stateful
public class UserManagerBean implements UserManager {
//getters and setters...
//.......
public void addUser(User user) {
//implemented here
}
//.......
}
UserManager.java
@Local
@Remote
public interface UserManager {
//methods here
}
在Web應用程序(一個獨立的Web應用程序),我有這樣的:
的UserManager .java
public interface UserManager {
//methods here
}
User.java
public interface User {
//methods here
}
現在..在豆......我試圖從遠程上下文來獲取我的豆子並使用它們:
//ctx is created with the specific properties to access remote context..
InitialContext ctx = new InitialContext();
userManager = (UserManager)ctx.lookup("java:global/project/projectEJB/UserManagerBean");
User user = userManager.getUserById(1); //working
User new_user = (User)ctx.lookup("java:global/project/projectEJB/User"); //not working
//I know this is not supposed to work.. but how can I do this?
我知道你不能得到一個實體的實例,因爲它不是一個ejb ... 我是否必須創建一個像projectEJB一樣普通的用戶類?沒有更好的解決方案嗎? 還有哪些其他解決方案?我搜索谷歌和它似乎像大家都知道如何做到這一點。只有我不...
預先感謝您..
不是我的用戶管理器已經是DAO了嗎?你的建議是爲我的實體課創建一個dao-setters和getters--對嗎? – Alex
@ user969812嗯,我無法知道UserManagerBean是否是DAO。如果它只對用戶實體起作用,那很可能是。當然,您可以創建一個具有「新」的實體,但堅持它應該發生在EJB一側。另一個提示:您可以將「addUser」的返回類型更改爲User,並返回您新保留的實體。 – MaDa