2

私の質問はおそらく非常に単純なので、答えを見つけることができません。

私はこのようなことをしたい:

@Entity  
public class EntityA {

    @Transient
    @SomeQueryAnnotation(query="select b from EntityB where b.id=1")
    private EntityB entityB;
}

EntityB は一種の静的リソースです。データベースに保存しないでください。また、エンティティ間のマッピングもありません。

[編集]

私がこれをしたとき、あなたはそれが大丈夫だと思いますか:

@Entity  
public class EntityA {

    private EntityB getEntityB() {
       ServiceRemote service = (ServiceRemote)context.lookup("ejb:ServiceRemote"); 
       return service.getEntityB();
    }
}

接続は各クライアントの jndi.properties ファイルで構成できるため、リモート処理を引き続き使用できるはずです。エンティティからデータベースにアクセスする必要がある場合、どの方法をお勧めしますか?

4

1 に答える 1

0

最良の推奨事項 - これらのオブジェクトにデータベース内の関係がない限り、エンティティ関係は存在しないはずです。

2 番目に良い方法 - データ転送オブジェクトを作成してオブジェクトをフェッチすることをお勧めします。

@Entity  
public class EntityA {

  @Transient
  private EntityB entityB;
}

@Stateless
public class EntityADTO {
   EntityManager em;

   public EntityA findA(Object pkey) {
      EntityA a = em.find(okey, EntityA.class);
      a.entityB = em.find(1, EntityB.class);

      return a;
   }
}
于 2013-01-05T06:00:49.457 に答える