JPA实体之间的关系不同的EJB模块



目前我们正在针对不同的模块开发EJB模块。它的意思是:用户,菜单等…但是JPA实体是否可能使用不同的EJB模块实体?

例如:

这是我的菜单JPA实体在菜单EJB模块。

@Entity
@Table(name = "MENU")
public class Menu implements Serializable {
    @Id    
    @Column(name = "MENU_ID", nullable = false, precision = 38, scale = 0)    
    private Long menuId;
    //getter setter
}

但是我的User JPA实体需要在User EJB模块中使用Menu实体。

@Entity
@Table(name = "USER")
public class User implements Serializable {
    @Id    
    @Column(name = "USER_ID", nullable = false, precision = 38, scale = 0)    
    private Long userId;
    @JoinColumn(name = "MENU_ID", nullable = false)
    @ManyToOne(optional = false)
    private Menu menuId;    
    //getter setter
}

当我从用户EJB模块运行单元测试时,我得到以下错误:

[class com.user.User] uses a non-entity [class com.menu.Menu] as target entity in the relationship attribute [field menuId]

我该如何解决这个问题?还是可以使用?

还有什么是最好的方式来部署这些ejb模块在一起?

谢谢你,Eba

如果您在persistence.xml中指定带有实体类的jar-file元素

    <persistence>
        <persistence-unit name="unit_name">
        <jta-data-source>java:/DefaultDS</jta-data-source>
        <jar-file>some_lib.jar</jar-file>
        ..................

或者直接指定实体类:

<class>some.entity.ClassName</class>

相关内容

  • 没有找到相关文章

最新更新