DaoレイヤをKodoJDOからHibernateに移植します。 私はデータベースにメニューを保持しており、ユーザーの権限に基づいて、ユーザーが実行できる権限だけを表示するためにローカルコピーをプルーニングします。JDO makeTransientのHibernateに相当するもの
私がKodoJDOでこれをやったとき、私はobjestを作らなければなりませんでした。私はdbに変更を書き戻したくないので一時的に剪定していました。
私はHibernateで同等の機能はありません。 1つはありますか?これらの変更がdbに書き戻されないようにするにはどうすればよいですか。
ここでは、枝刈り機能があります。
public void prune(Collection<Entitlement> ents)
{
Session session=PersistenceManager.getManager();
// Rewrite----------------------------------
//session.makeTransient(this);
for (Iterator<Leaf> iter = leafs.iterator(); iter.hasNext();)
{
Leaf l = (Leaf) iter.next();
if(!l.isAllowed(ents))
{
iter.remove();
}
}
for (Iterator<Branch> iter = branches.iterator(); iter.hasNext();)
{
Branch b = (Branch) iter.next();
if(b!= this)
{
b.prune(ents);
}
if (b.hasNoChildren())
{
iter.remove();
}
}
}
答えにコメントする。私は最も完成したものを受け入れましたが、スカフマンとアフィの答えは貴重でした。
コードインデントskaffmanをありがとう。あなたは私が同じことをやっている途中だけだったのですが、提出しました。 – Aaron