java - 选择与 EJB3 冲突

标签 java orm jpa

今天我遇到了 JPA/EJB3 的新问题。我有 2 个表 UserGroup 具有映射 OneToMany(组一 - 用户多)

当我在EJB中使用select语句时,例如:

@NamedQuery(name = "Iuser.findAll", query = "SELECT i FROM Iuser i")

发生冲突,它不知道group字段我选择在哪里表? (User 表中的 group 字段是 groupid [外键],Group 中的 group 字段code> 表是 Group [主键])

如何解决这个问题?

我知道EJB3中的用户user.group按钮语句未执行,请帮忙。

最佳答案

我敢打赌,IGroup 实体映射到表 Group 上,这是一个保留关键字,如果不转义可能会导致问题。

如果您使用的是 JPA 2.0 提供程序,则可以告诉 JPA 提供程序通过将名称括在双引号内来转义数据库对象名称,如下所示:

@Entity
@Table(name="\"GROUP\"")
public class IGroup {
    ...
}

如果您使用的是 JPA 1.0,则没有标准化的方法,这取决于 JPA 提供商。使用 Hibernate,您必须使用反引号:

@Entity
@Table(name="`GROUP`")
public class IGroup {
    ...
}

或者,更改非保留关键字的表名称:

@Entity
@Table(name="GROUPS")
public class IGroup {
    ...
}

有意义吗?

关于java - 选择与 EJB3 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732573/

相关文章:

python - Django ORM 是否具有等效于 SQLAlchemy 的混合属性?

hibernate - 具有许多列的Hibernate映射表

java - 使用 Eclipse 调试 jnlp 应用程序

java - 编写一个java程序来读取长字符串(使用流)并将输出写入文件?

java - 禁用 ez-vcard PROPID

orm - 如何在 strongloop 环回中一次更新多个模型的 hasandbelongstomany 关系

java - 为什么 JavaFx SceneBuilder 找不到用户定义的类?

Hibernate 是否会进行 null 检查来初始化惰性实体?

java - 带有 Predicate 的 Spring Data JPA 方法 findAll() - QueryDslPredicateExecutor

java - JPA 无交易 Activity