からオブジェクトを取得するときに私は私がデータベースからオブジェクトPojo
を得るときdLong
にdate
を変換したい私は、いくつかのPOJOセット]フィールドHibernateはデータベース
public class Pojo {
@Temporal(TemporalType.DATE)
private Date date;
@Transient
private long dLong;
//other fields
//getters and setters
}
を持ってHibernateとJPA
を使用しています。私はオブジェクト
Pojo pojo = repository.findFirst();
Date date = pojo.getDate();
long l = date.getTime();
pojo.setDLong(l);
を持っていますが、私は私がゲッターとセッターを使用しようとしたが失敗したrepository.findFirst()
を呼び出すときにこれを実行したいとき が、私はこれを行うことができます。
編集 トップコンテンツは例です。申し訳ありませんが、私は例で私の問題を説明することはできません。今、私は私のorignalコードを示しています。
@Entity
public class Medicament {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
@Transient
private long date;
@Temporal(TemporalType.DATE)
private Date dateExpiration;
//getters and setters
}
次の私は、データベースから取得するときに、私はデータベースdateExpiration
に格納が、サービス
@Service
public class MedicamentService {
@Autowired
private MedicamentRepositoryEntityGraph medicamentRepositoryEntityGraph;
public Medicament findById(int id) {
return medicamentRepositoryEntityGraph.getOne("select m from Medicament m where m.id="+id, "user", "disease");
}
}
とリポジトリ
@Repository
public class MedicamentRepositoryEntityGraph {
@Autowired
private EntityManager entityManager;
public Medicament getOne(String query, String...param) {
EntityGraph<Medicament> entityGraph = template(param);
Medicament medicament = entityManager.createQuery(query, Medicament.class)
.setHint("javax.persistence.loadgraph", entityGraph)
.getSingleResult();
return medicament;
}
private EntityGraph<Medicament> template(String... param) {
EntityGraph<Medicament> entityGraph = entityManager.createEntityGraph(Medicament.class);
entityGraph.addAttributeNodes(param);
Map<String, Object> hints = new HashMap<String, Object>();
hints.put("javax.persistence.fetchgraph", entityGraph);
return entityGraph;
}
}
を持っている「する医薬」私'dateExpiration'をlong 'date'に変換したい場合は、メソッドMedicamentService
findById
を使用します。 10
私は失敗したゲッターとセッターを使用しようとしたが:
public void setDateExpiration(Date dateExpiration) {
this.dateExpiration = dateExpiration;
this.date = dateExpiration.getTime();
}
なぜ、 'date.getTime()'を返すゲッターを提供しないのですか? 'repository.findFirst()'とは何ですか?カスタム実装ですか? 'Pojo'はエンティティであるか、あるいはHibernateのコンストラクタ構文を介して作成されていますか? – Thomas
メインの質問にいくつかの情報を追加しました。それはstackoverflowの私の最初の投稿であり、私は質問がある私は私の質問を編集したメッセージを受け取りましたか? –
いいえ、あなたの質問を編集した場合、通知はありません。 – Thomas