java – JPA最佳实践:静态查找实体
| 
                         想象一下,事件实体引用了一个状态实体: @Entity
@Table(name = "event")
public class Event()
{
  @Id
  @Column(name = "id",nullable = false)
  private long id;
  ...
  @ManyToOne
  @JoinColumn(name = "status_code",nullable = false)
  private Status status;
}
@Entity
@Table(name = "status")
public class Status()
{
  @Id
  @Column(name = "code",nullable = false)
  private String code;
  @Column(name = "label",nullable = false,updatable = false)
  private String label;
} 
 状态映射到一个小表’状态’.状态是典型的参考数据/查找实体. code label ----- -------------- CRD Created ITD Initiated PSD Paused CCD Cancelled ABD Aborted 我不知道如果将状态建模为一个实体是个好主意.感觉更像是常数的枚举… 通过将状态映射为实体,我可以使用Java代码中的状态对象,并且状态值同样存在于数据库中.这对报告很好. 另一方面,如果我想为某个事件设置一个特定的状态,我不能简单地分配我所记住的常数状态.我必须首先查找正确的实体: event.setStatus(entityManager.find(Status.class,"CRD")) 我可以避免上述代码片段吗?我害怕一个表现的惩罚,它看起来很沉重… >我必须用只读属性来调整东西吗? 欢迎所有意见/建议/建议! 谢谢! 解决方法
 那么你可以使用一个枚举.我真的不明白你为什么不实际 但是,如果您真的想使用一个实体,那么它将是二级缓存的完美候选者,这将解决您的性能问题. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
- java MyBatis拦截器Inteceptor详细介绍
 - java byte数组与int,long,short,byte的转换实现方法
 - java – ListView Viewholder复选框状态
 - java – CopyOnWriteArrayList throwing CurrentModificati
 - MyBatis Oracle 自增序列的实现方法
 - 黄瓜junit runner java.lang.NoSuchMethodError:
 - java – MainActivity.this不是一个封闭的类AsyncTask
 - Netty使用NIO而不是AIO
 - 浅谈java多态的实现主要体现在哪些方面
 - java – 选择具有预期数量的唯一值和插入的HashSet的初始容
 
