タグ付けされた質問 「orm」

オブジェクトリレーショナルマッピング(ORM)は、オブジェクト指向システムをリレーショナルデータベースにマッピングするための手法です。他のタグを使用して、プログラミング言語([java]、[sql]、[python])、データベースシステム([postgreSQL]、コンテンツ管理システム([django])、フレームワーク([flask]、[spring]、[laravel]を示す])、アプリケーション環境([android]、[node.js])、および検索に使用でき、ウォッチャーを持つその他のタグ。

16
なぜORMを使用する必要があるのですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 7年前休業。 この質問を改善する ORMを管理/クライアントに使用する理由の「長所」をやる気にさせるとしたら、その理由は何でしょうか? 回答ごとに1つの理由を試して、投票されたものを最良の理由として確認できるようにします。
113 database  orm 

1
どのようにポニー(ORM)はそのトリックを行いますか?
Pony ORMは、ジェネレーター式をSQLに変換する素晴らしいトリックを行います。例: >>> select(p for p in Person if p.name.startswith('Paul')) .order_by(Person.name)[:2] SELECT "p"."id", "p"."name", "p"."age" FROM "Person" "p" WHERE "p"."name" LIKE "Paul%" ORDER BY "p"."name" LIMIT 2 [Person[3], Person[1]] >>> Pythonにはすばらしいイントロスペクションとメタプログラミングが組み込まれていることは知っていますが、このライブラリが前処理なしでジェネレータ式を変換する方法を教えてください。魔法のようです。 [更新] ブレンダーは書きました: これがあなたが探しているファイルです。イントロスペクションウィザードを使用してジェネレータを再構築しているようです。Pythonの構文が100%サポートされているかどうかはわかりませんが、これは非常に優れています。–ブレンダー 私は彼らがジェネレータ式プロトコルからいくつかの機能を探っていると思っていましたが、このファイルを見て、ast関連するモジュールを見つけました...いいえ、彼らはその場でプログラムソースを検査していませんね?心が吹く... @BrenBarn:select関数呼び出しの外でジェネレータを呼び出そうとすると、結果は次のようになります。 >>> x = (p for p in Person if p.age > 20) >>> x.next() …


11
persistence.xmlに<class>要素が必要ですか?
私は非常に単純なpersistance.xmlファイルを持っています: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"&gt; &lt;persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL"&gt; &lt;class&gt;pl.michalmech.eventractor.domain.User&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.Address&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.City&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.Country&lt;/class&gt; &lt;properties&gt; &lt;property name="hibernate.hbm2ddl.auto" value="validate" /&gt; &lt;property name="hibernate.show_sql" value="true" /&gt; &lt;/properties&gt; &lt;/persistence-unit&gt; &lt;/persistence&gt; そしてそれは動作します。 しかし、&lt;class&gt;要素を削除すると、アプリケーションにエンティティが表示されません(すべてのクラスにはで注釈が付けられます@Entity)。 @Entityクラスをスキャンする自動メカニズムはありますか?
110 java  hibernate  orm  jpa  annotations 


9
永続化コンテキストとは何ですか?
Javaの世界とJPAは初めてです。私はJPAを勉強していて、エンティティ、永続性などの多くの新しい用語に出くわしました。読んでいる間、永続コンテキストの正確な定義を理解できませんでした。 誰でも簡単に平易に説明できますか?で使用されているデータとは何@Entityですか? たとえば、この定義は複雑すぎて理解できません。 永続コンテキストは、永続的なIDに対して一意のエンティティインスタンスが存在するようなエンティティのセットです。
109 java  jpa  orm  persistence 

2
JPQL IN句:Java配列(またはリスト、セット…)?
データベースから、小さいが任意の数の値のいずれかにテキストタグが設定されているすべてのオブジェクトをロードしたいと思います。SQLでこれを行う論理的な方法は、 "IN"句を作成することです。JPQLではINを使用できますが、すべてのパラメーターをINに直接指定する必要があるようです( "in(:in1、:in2、:in3)"など)。 IN句の値に展開する必要がある配列またはリスト(またはその他のコンテナー)を指定する方法はありますか?
108 sql  orm  jpa  jpql  named-query 


20
ORMを使用しない正当な理由はありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 見習い期間中、NHibernateを使用して、主に自分でコーディングおよび設計したいくつかの小さなプロジェクトを使用しました。さて、いくつかのより大きなプロジェクトを始める前に、データアクセスを設計する方法とORMレイヤーを使用するかどうかについての議論が生じました。私はまだ実習生であり、自分自身をエンタープライズプログラミングの初心者と見なしているため、データベースにオブジェクトリレーショナルマッパーを使用すると、開発を大幅に容易にできるという私の考えを実際に押し付けようとはしませんでした。開発チームの他のコーダーは私よりもはるかに経験が豊富なので、私は彼らが言うことだけをやると思います。:-) ただし、NHibernateまたは同様のプロジェクトを使用しない2つの主な理由を完全には理解していません。 SQLクエリを使用して自分のデータアクセスオブジェクトを作成し、それらのクエリをMicrosoft SQL Server Management Studioからコピーするだけです。 ORMのデバッグは難しい場合があります。 したがって、もちろん、多数のSELECTsなどを使用してデータアクセスレイヤーを構築することもできますが、ここでは、自動結合、遅延読み込みプロキシクラス、およびテーブルが新しい列を取得するか列が名前が変更されました。(多数のSELECT、INSERTおよびUPDATEクエリの更新と、マッピング構成の更新、およびおそらくビジネスクラスとDTOのリファクタリング)。 また、フレームワークをよく知らない場合、NHibernateを使用して予期しない問題が発生する可能性があります。たとえば、文字列の長さが自動的に検証されるように設定したTable.hbm.xmlを信頼する場合などです。ただし、「単純な」SqlConnectionクエリベースのデータアクセスレイヤーに同様のバグがあることも想像できます。 最後に、上記の議論は、重要なデータベースベースのエンタープライズアプリケーションにORMを利用しないことの本当に正当な理由ですか?彼ら/私が逃したかもしれない他の議論はおそらくありますか? (これは、チームワークを必要とする最初の「大きな」.NET / C#ベースのアプリケーションのようなものだと思うことを追加する必要があります。ユニットテストや継続的な統合など、スタックオーバーフローではかなり正常と見なされる良い習慣はありません。 -ここまで存在します。)
107 c#  nhibernate  orm  enterprise 

10
MYSQL自動インクリメントフィールドにJPAアノテーションを付ける方法
端的に言うと、問題はオブジェクトオペレーターをMySQL DBに保存することです。保存する前に、このテーブルから選択してみます。それが機能するので、dbへの接続も同様です。 ここに私のOperatorオブジェクトがあります: @Entity public class Operator{ @Id @GeneratedValue private Long id; private String username; private String password; private Integer active; //Getters and setters... } 保存するには、JPA EntityManagerのpersistメソッドを使用します。 ここにいくつかのログがあります: Hibernate: insert into Operator (active, password, username, id) values (?, ?, ?, ?) com.mysql.jdbc.JDBC4PreparedStatement@15724a0: insert into Operator (active,password, username, id) values (0, …
105 java  mysql  orm  jpa  annotations 

3
SQLAlchemy:日付フィールドをフィルタリングする方法?
ここにモデルがあります: class User(Base): ... birthday = Column(Date, index=True) #in database it's like '1987-01-17' ... たとえば、18〜30年の間隔ですべてのユーザーを選択するために、2つの日付の間でフィルターをかけます。 SQLAlchemyでそれを実装する方法? 私は思います: query = DBSession.query(User).filter( and_(User.birthday &gt;= '1988-01-17', User.birthday &lt;= '1985-01-17') ) # means age &gt;= 24 and age &lt;= 27 これが正しくないことは知っていますが、どのように修正すればよいですか?
105 python  sql  database  orm  sqlalchemy 

4
計算されたプロパティをJPAおよびHibernateでマップする方法
私のJava BeanにはchildCountプロパティがあります。このプロパティはデータベースの列にマップされていません。代わりに、Java Beanとその子の結合で動作するCOUNT()関数を使用して、データベースで計算する必要があります。このプロパティをオンデマンドで/「遅延」で計算できればさらに良いでしょうが、これは必須ではありません。 最悪のシナリオでは、このBeanのプロパティをHQLまたはCriteria APIで設定できますが、設定しない方がよいでしょう。 Hibernate @Formulaアノテーションは役立つかもしれませんが、ドキュメントをほとんど見つけることができませんでした。 どんな助けも大歓迎です。ありがとう。

4
Node.jsでSequelizeを使用して結合クエリを作成する方法
私はsequelize ORMを使用しています。すべてが素晴らしくきれいですが、joinクエリで使用すると問題が発生しました。私には2つのモデルがあります。ユーザーと投稿です。 var User = db.seq.define('User',{ username: { type: db.Sequelize.STRING}, email: { type: db.Sequelize.STRING}, password: { type: db.Sequelize.STRING}, sex : { type: db.Sequelize.INTEGER}, day_birth: { type: db.Sequelize.INTEGER}, month_birth: { type: db.Sequelize.INTEGER}, year_birth: { type: db.Sequelize.INTEGER} }); User.sync().success(function(){ console.log("table created") }).error(function(error){ console.log(err); }) var Post = db.seq.define("Post",{ body: { type: db.Sequelize.TEXT …

8
JPAとHibernateを使用する場合、どのように等号とハッシュコードを実装すべきか
モデルクラスのイコールとハッシュコードをHibernateに実装するにはどうすればよいですか?一般的な落とし穴は何ですか?ほとんどの場合、デフォルトの実装で十分ですか?ビジネスキーを使う意味はありますか? 遅延フェッチ、ID生成、プロキシなどを考慮に入れると、あらゆる状況で正しく機能させるのはかなり難しいようです。
103 java  hibernate  orm  equals  hashcode 

2
JPAを使用してMap <String、String>を格納する
アノテーションをattributes使用して、JPA2を使用して次のクラスでマップを永続化することが可能かどうか疑問に思っています public class Example { long id; // .... Map&lt;String, String&gt; attributes = new HashMap&lt;String, String&gt;(); // .... } すでに既存の本番データベースがあるので、理想的にはの値をattributes 次の既存のテーブルにマッピングできます。 create table example_attributes { example_id bigint, name varchar(100), value varchar(100));
103 java  jpa  orm  jpa-2.0 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.