12c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar/*
22c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * Copyright (C) 2017 The Android Open Source Project
32c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar *
42c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * Licensed under the Apache License, Version 2.0 (the "License");
52c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * you may not use this file except in compliance with the License.
62c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * You may obtain a copy of the License at
72c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar *
82c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar *      http://www.apache.org/licenses/LICENSE-2.0
92c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar *
102c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * Unless required by applicable law or agreed to in writing, software
112c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * distributed under the License is distributed on an "AS IS" BASIS,
122c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * See the License for the specific language governing permissions and
142c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar * limitations under the License.
152c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar */
162c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar
17bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viverettepackage androidx.room.integration.testapp;
182c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar
19bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.Dao;
20bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.Database;
21bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.Insert;
22bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.Query;
23bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.RoomDatabase;
24bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.integration.testapp.vo.IntAutoIncPKeyEntity;
25bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.integration.testapp.vo.IntegerAutoIncPKeyEntity;
26bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.integration.testapp.vo.IntegerPKeyEntity;
27bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.integration.testapp.vo.ObjectPKeyEntity;
282c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar
29f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyarimport java.util.List;
30f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar
31540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu@Database(entities = {IntAutoIncPKeyEntity.class, IntegerAutoIncPKeyEntity.class,
32a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu        ObjectPKeyEntity.class, IntegerPKeyEntity.class}, version = 1,
33a64756a18111a7312b3fa03b76d13381a8907176Yigit Boyar        exportSchema = false)
342c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyarpublic abstract class PKeyTestDatabase extends RoomDatabase {
352c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar    public abstract IntPKeyDao intPKeyDao();
36a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu    public abstract IntegerAutoIncPKeyDao integerAutoIncPKeyDao();
37540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu    public abstract ObjectPKeyDao objectPKeyDao();
38a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu    public abstract IntegerPKeyDao integerPKeyDao();
392c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar
402c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar    @Dao
412c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar    public interface IntPKeyDao {
422c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar        @Insert
432c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar        void insertMe(IntAutoIncPKeyEntity... items);
44f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        @Insert
45f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        long insertAndGetId(IntAutoIncPKeyEntity item);
46f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar
47f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        @Insert
48f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        long[] insertAndGetIds(IntAutoIncPKeyEntity... item);
49f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar
503542101509120586bbae17b1f748f302e1fb82a3Yigit Boyar        @Query("select * from IntAutoIncPKeyEntity WHERE pKey = :key")
512c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar        IntAutoIncPKeyEntity getMe(int key);
52f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar
53f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        @Query("select data from IntAutoIncPKeyEntity WHERE pKey IN(:ids)")
54f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        List<String> loadDataById(long... ids);
552c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar    }
562c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar
572c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar    @Dao
58a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu    public interface IntegerAutoIncPKeyDao {
592c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar        @Insert
60540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu        void insertMe(IntegerAutoIncPKeyEntity item);
61540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu
623542101509120586bbae17b1f748f302e1fb82a3Yigit Boyar        @Query("select * from IntegerAutoIncPKeyEntity WHERE pKey = :key")
632c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar        IntegerAutoIncPKeyEntity getMe(int key);
64f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar
65f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        @Insert
66f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        long insertAndGetId(IntegerAutoIncPKeyEntity item);
67f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar
68f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        @Insert
69f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        long[] insertAndGetIds(IntegerAutoIncPKeyEntity... item);
70f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar
71f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        @Query("select data from IntegerAutoIncPKeyEntity WHERE pKey IN(:ids)")
72f5f2cf6b9ed63915448e81551e4b7bb72a26030eYigit Boyar        List<String> loadDataById(long... ids);
732c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar    }
74540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu
75540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu    @Dao
76540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu    public interface ObjectPKeyDao {
77540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu        @Insert
78540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu        void insertMe(ObjectPKeyEntity item);
79540e3498175652abe452d8e0ed1c252e718ddf5aFlorina Muntenescu    }
80a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu
81a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu    @Dao
82a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu    public interface IntegerPKeyDao {
83a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu        @Insert
84a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu        void insertMe(IntegerPKeyEntity item);
85a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu
86a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu        @Query("select * from IntegerPKeyEntity")
87a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu        List<IntegerPKeyEntity> loadAll();
88a1be0035ff9cb46339f02db942c990e44eab7075Florina Muntenescu    }
892c6462f129bf43965ed8b054b026f6a28fe6fd8fYigit Boyar}
90