from Joose expands with new ORM on Ajaxian
Malte 씨가 JavaScript의 메타 객체 시스템인 Joose의 작업을 계속해 상당한 양의 문서를 추가했다고 합니다
Joose는 예제 섹션에 Gears 데이터베이스의 간단한 객체 관계 매퍼를 포함합니다. Gears가 설치되어있다면 실행해보세요.
테스트 수트가 실행되고나면 데이터베이스 테이블을 나타내는 클래스들의 목차가 있는 클래스 브라우저가 보입니다. 예제는 두 개의 엔티티를 포함하고 있습니다(MyEntities 모듈에 있는 Car와 Person).
다음과 같이 컨셉 증명 OR 매퍼로 엔티티를 정의하세요:Module("MyEntities", function (m) {
Class("Car", {
isa: ORM.Entity,
has: {
owner: {
metaclass: ORM.HasOne,
isa: function () { return m.Person }
}
},
classMethods: {
tableName: function () {
return "car"
}
}
})
Class("Person", {
isa: ORM.Entity,
classMethods: {
tableName: function () {
return "person"
}
},
has: {
mother: {
metaclass: ORM.HasOne,
isa: function () { return m.Person }
},
cars: {
metaclass: ORM.HasMany,
isa: function () { return m.Car },
foreignKey: "owner"
}
}
});
});
사용예는 이렇습니다:// Create the mother
var mother = new MyEntities.Person();
mother.name("elke");
mother.city("Elmshorn");
mother.save();
// Create the son
var person = new MyEntities.Person();
person.name("malte");
person.city("Hamburg");
person.mother(mother); // set the mother
person.save();
// Give the son 10 cars :)
for(var i = 0; i <10; i++) {
var car = new MyEntities.Car();
car.model("3."+i);
car.brand("bmw");
car.owner(person);
car.save();
}
// refetch the person from the db
var personFromDb = Entities.Person.newFromId(person.rowid());
alert(personFromDb.mother().name()) // will alert 'elke'
alert(personFromDb.cars()[0].brand()) // will alert 'bmw'
'[IT] Web Tech' 카테고리의 다른 글
blur, focus 이벤트의 이벤트 위임 (0) | 2008.04.16 |
---|---|
서버사이드 jQuery, E4X, 그리고 Jaxer (0) | 2008.04.15 |
App Engine에서 사용하는 Appcelerator (0) | 2008.04.15 |
using.js: JavaScript 의존성 관리 (0) | 2008.04.15 |
Joose를 새로운 ORM으로 확장 (0) | 2008.04.15 |
Dromaeo: JavaScript 엔진 테스트 (0) | 2008.04.15 |
Java 플러그인 : 돌아온 커널 (1) | 2008.04.15 |
뒤집어진 텍스트 (0) | 2008.04.15 |
Mozilla Fennec: The mobile browser (0) | 2008.04.15 |
댓글을 달아 주세요