java - 如何从另一个表中获取单个值作为字符串

标签 java jpa eclipselink

我有两张 table

日志:

-------------------------------------------------------------------------------
|   id (pk)             |   target                    |      event_code (fk)   |
-------------------------------------------------------------------------------
|   1                   |   System_Role               |           1            |
--------------------------------------------------------------------------------
|   2                   |   System_RUle               |           2            |
--------------------------------------------------------------------------------
|   1                   |   Internal_User             |           3            |
--------------------------------------------------------------------------------
|   3                   |   External_User             |           4            |
--------------------------------------------------------------------------------

Activity :

-------------------------------------------------------
|   id (pk)             |             event           |
-------------------------------------------------------
|   1                   |   Role was added            |
-------------------------------------------------------
|   2                   |   Rule was removed          |
-------------------------------------------------------
|   1                   |   User was updated          |
-------------------------------------------------------
|   3                   |   User password was reseted |
-------------------------------------------------------

表日志具有从字段 event_code 到事件字段 id 的外键。

实体:

@Entity
@Table(name = "logs")
public class LogEvent implements Serializable{

    private static final long serialVersionUID = 1;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 150)
    @Column(name = "target")
    private String target;

    //????
    private String event;

    public LogEvent(String target, String event) {
        this.target = target;
        this.event = event;
    }        
}

我需要从表事件中获取字段事件并将其放入变量事件中。我还需要将新值正确添加到我的数据库中。如何做到这一点?

最佳答案

这里您需要的是使用 JPA 的 ManyToOne 关系,例如:

@ManyToOne 
@JoinColumn(name="event_code", nullable=false)
private Event event;

这样您就可以轻松地操作与您的 LogEvent 相对应的事件寄存器。

我强烈建议您了解JPA关系: https://www.tutorialspoint.com/jpa/jpa_entity_relationships.htm

关于java - 如何从另一个表中获取单个值作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50235314/

相关文章:

java - PriorityQueue 在删除元素时更改顺序

java - Android - 获取运行时权限的问题

java - 为什么 getEntityManager().createNativeQuery 不支持 IN 子句

java - 如何将 String[] 参数设置为 native 查询?

java - 用户插入的作为实体 ID 的字符串 [EclipseLink]

java - 在 Java 中使用 JSplitPane 有问题吗?

java - HashMap 中不区分大小写的搜索

java - 如何将表与该表的实体类中 View 的一列连接起来

java - 为什么 JPA 实体类及其方法不能声明为 final?

使用 JPA 和 MySQL 的 Java 应用程序错误代码 1054