私はそれのGrailsの
一部が抽出に構成されています(角度使って、足場が、クライアント側)の角ベースのCRUDアプリケーションのための発電機を書き込もうとしていますGORMのメタ情報 今、私は明らかに硬い壁に当たっています。
IDフィールドが生成されず、アプリケーションによって管理されるケースを処理したいと考えています。私は「phoneidなど」である必要があり、ここで、このクラスのための識別子としてのフィールドを取得したいと思います
@Resource(readOnly = false, formats = ['json', 'xml'])
class Phone {
int age
String phoneId
String imageUrl
String name
String snippet
static mapping = {
id name: 'phoneId', generator: 'assigned'
}
static constraints = {
snippet(nullable: true, maxSize: 2000)
}
}
: は、私のようなクラス定義を持っていると言います。
しかし、私が求める場合:私は代わりに何を得る
grailsApplication.getDomainClass(com.phonecat.Phone.getName()).identifier
プロパティで、ロングタイプの 'ID' と呼ばれる:
[email protected] name = 'id', type = Long, persistent = true, optional = false, association = false, bidirectional = false, association-type = [null]]
アムIの誤使用getIdentifier方法を? 私が見逃したことはありますか? またはGrails/GORMでバグを起こしましたか?完全のために
が、ここで私が使用しているGORMのバージョンである(私の知る限り...たくさんのことを... GORM側で最近変更):build.groovyから
:
compile "org.grails.plugins:hibernate5"
compile "org.hibernate:hibernate-core:5.1.2.Final"
compile "org.hibernate:hibernate-ehcache:5.1.2.Final"
また、私はこれらのテストを実行するために、Grailsのコンソールプラグインを使用しています:
runtime 'org.grails.plugins:grails-console:2.0.6'
(私は本当に素晴らしい見つける。)
をしかし、おそらく同じことは、通常の内から実行することができコマンドラインコンソール。ここで
は、私が使用するコードです:
import com.phonecat.*
println grailsApplication.getDomainClass(Phone.getName()).identifier
def d = grailsApplication.getDomainClass(Phone.getName())
println "${d.class} ${d.clazz.name} ${d.identifier}"
def pd = Phone.findAll().each {c ->
println "${c.id} ${c.phoneId}"
}
null
質問は次のとおりです。(実際にあることを起こると...)私は、ドメインに関するメタ情報を取得するためのプラグインを書いていると仮定しますクラス; GORMから、このクラスにフィールド 'phoneId'が一意の識別子として割り当てられているという情報を取得するにはどうしたらよいですか?これはRESTを通じてリソースにクエリを実行するときに調べるべき値ですか?
'String phoneId'を' String id'に変更しようとしましたか?さらに、 'phoneId'を制約から削除することを忘れないでください。 –
@Michael_Szulc:制約内のphoneId()は、足場を使用するときにフィールドがレンダリングされる順序を保証するためにのみ存在しました。彼らのように削除され、実際には、この質問には役に立たない。 私はあなたの提案を試してみました。この場合、識別子メソッドは正しく名前 'id'とタイプ文字列のIDを報告します。 でも私の問題は解決しません。モデルを変更しようとしています。私は実際に私のモデルのメタ情報を取得するプラグインを作成しています(したがって、識別子フィールドも同じです)。だから私は、ユニークな識別子として与えられたフィールドの名前を取得するメソッドを望む – precchia