【问题标题】:JPA entity relationship between different EJB Module不同EJB Module之间的JPA实体关系
【发布时间】:2014-10-04 00:19:01
【问题描述】:

目前我们正在为不同的模块开发 EJB 模块。这意味着:用户、菜单等...但是 JPA 实体是否有可能使用不同的 EJB 模块实体。

例如:

这是我在 Menu EJB 模块中的 Menu JPA 实体。

@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 模块的最佳方法是什么?

谢谢, 埃巴

【问题讨论】:

    标签: jakarta-ee jpa netbeans ejb


    【解决方案1】:

    如果你在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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多