Comments (10)
Due to being on the train at the moment I can't test it, but what exactly is the problem? Right now you should be able to do
Project.belongsTo(User, { as: "Founder" });
someproject.getFounder();
What is not working is:
Project.hasMany(User, { as: "Owner" }); // singular
someproject.getOwners();
but
Project.hasMany(User, { as: "Owners" }); // singular
someproject.getOwners();
should work. Isn't it?
from sequelize.
Sorry, I'm probably not being very clear. I'll write a gist to try and clarify what I mean.
from sequelize.
Ok, so I'm not reporting a bug here (or at least I don't think I am). What I would like to add is functionality for having multiple associations between 2 models.
The // singular
comment I made was just to indicate a possible change in API, to make things more consistent, and have proper pluralisation when finding associated data in reverse.
Hopefully this gist makes it a bit clearer: https://gist.github.com/1045705
If I'm still not making any sense, let me know.
from sequelize.
ah ok i got it. if i remember correctly, someone requested in issue about automatical pluralization and that it should be possible to disable it. so i added the "as" flag to overwrite the default behavior. but i guess i will automatically pluralize it if a specific config flag in sequelize isn't set or so. thanks for your request
from sequelize.
is this still actual?
I have a similar problem.
I have a Game with two properties.
Game.hasMany(User, { as: 'X' })
Game.hasMany(User, { as: 'O' })
As @Sugarstack already pointed it out. second association overwrites the first one.
from sequelize.
you have to defined the foreignKey http://sequelizejs.com/?active=associations#associations
from sequelize.
It is many-many relation.
I expect GamesUsers table would have following fields:
-GameId
-UserId
-type (X or O)
or have two "GamesUsers" relation tables.
from sequelize.
well you can just define the reference table on your own. here is a not tested version:
var Sequelize = require("sequelize")
, sequelize = new Sequelize('database', 'root')
var User = sequelize.define('User', { username: Sequelize.STRING })
, Game = sequelize.define('Game', { title: Sequelize.STRING })
, GameUser = sequelize.define('GameUser', {
userId: Sequelize.INTEGER
, gameId: Sequelize.INTEGER
, gameType: Sequelize.STRING
})
User.hasMany(GameUser)
Game.hasMany(GameUser)
GameUser.belongsTo(Game).belongsTo(User)
sequelize.sync({ force: true }).success(function() {
// create your stuff
})
But yeah, you can't do things like game.getUsers().
from sequelize.
Yeah, I ended up writing my own SQL lib because I wanted a nice way for users to have many different relationships with tables. I still think it would be a nice addition to sequelize though.
from sequelize.
Implemented in the joinTableModel PR
from sequelize.
Related Issues (20)
- Incompatible with typescript 5.4 HOT 2
- The Integers above 9 digits are getting converted to decimal even when DataTypes.STRING is Specified and stored as string HOT 1
- Lower and trim flags to be added in models field options HOT 1
- Through model casing has a different name depending on eager or lazy loading HOT 1
- Misc Internal Improvements HOT 5
- findOrCreate - Transaction cannot be committed because it has been finished with state: rollback HOT 1
- Bulk Update Bug
- Oracle: Cannot insert more than 255 chars into a Sequelize.STRING(1024) column through bulkCreate() : NJS-058: maxSize of 255 is too small for value of length 921 in row 0 HOT 3
- sql.trim() fatal error HOT 2
- Support Cloudflare D1 Connections HOT 1
- Drop subclasses of `SequelizeConnectionError`
- Bug: the type of the `beforeBulkDestroy` hander's `options` attribute is `BulkCreateOptions` instead of `BulkDestroyOptions`
- bulkCreate with updateOnDuplicate updates the record (updatedAt) even if it is not changed HOT 3
- Is Iterate over findAll result and update records possible? HOT 3
- Creating multiple references in databases for same foreign key HOT 7
- postgres-array not resolved with yarn v4 (Error: Please install postgres-array package manually) HOT 2
- Customize toJSON() for custom serialization logic HOT 5
- Can't make table queries. TypeError: _.includes is not a function HOT 1
- DATE parse function crashes in SQLite HOT 1
- PostgreSQL. Error in getQueryInterface().describeTable() with column comments and schemas
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sequelize.