Select selects the model.
(values ...interface{})
| 839 | |
| 840 | // Select selects the model. |
| 841 | func (q *Query) Select(values ...interface{}) error { |
| 842 | if q.stickyErr != nil { |
| 843 | return q.stickyErr |
| 844 | } |
| 845 | |
| 846 | model, err := q.newModel(values) |
| 847 | if err != nil { |
| 848 | return err |
| 849 | } |
| 850 | |
| 851 | res, err := q.query(q.ctx, model, NewSelectQuery(q)) |
| 852 | if err != nil { |
| 853 | return err |
| 854 | } |
| 855 | |
| 856 | if res.RowsReturned() > 0 { |
| 857 | if q.tableModel != nil { |
| 858 | if err := q.selectJoins(q.tableModel.GetJoins()); err != nil { |
| 859 | return err |
| 860 | } |
| 861 | } |
| 862 | } |
| 863 | |
| 864 | if err := model.AfterSelect(q.ctx); err != nil { |
| 865 | return err |
| 866 | } |
| 867 | |
| 868 | return nil |
| 869 | } |
| 870 | |
| 871 | func (q *Query) newModel(values []interface{}) (Model, error) { |
| 872 | if len(values) > 0 { |
no test coverage detected