免責事項:私はJSFを初めて使用しますが、これに役立つ他の質問はまだ見つかりませんでした.
ID が長い場合は JSF に CRUD ビューがあります (より具体的には、それが重要な場合は primefaces ダイアログにあります)。ID として ObjectID を使用すると (Morphia が ID を自動生成するため、ObjectID を使用します) ObjectID を使用している場合)。
ObjectID がビューに転送され、正常に表示されますが、保存をクリックしても何も起こりません (ブレークポイントは保存メソッドでヒットせず、コンソールにエラーは表示されません)。 IDこれはうまくいきます。
ObjectID の入力フィールドと保存ボタンのアクションを次に示します (保存メソッドが null の ObjectID で返され、そうでない場合は新しいレコードを作成するため、ObjectID を表示します)。
<p:inputText value="#{dealerBean.selectedDealer.id}"
style="display:none;" />
<p:commandButton id="saveButton" value="Save" update="dealers"
actionListener="#{dealerBean.save}"
title="Save" type="Submit" oncomplete="dealerDialog.hide()">
</p:commandButton>
//type of selectedDealer
@com.google.code.morphia.annotations.Entity
class Dealer {
@com.google.code.morphia.annotations.Id
@Property //Generates getters and setter in XTend
org.bson.types.ObjectId id;
}
私の推測では、ObjectID のデシリアライズに問題があると思われます (ただし、コンソールにエラー メッセージは表示されません)。しかし、JSF については十分に理解していないため、そこからどこに移動すればよいかを知ることができず、助けていただければ幸いです。