คำถามติดแท็ก spring-data

Spring Data เป็นโครงการโอเพ่นซอร์สแบบร่มซึ่งมีโครงการย่อยมากมายที่เฉพาะเจาะจงสำหรับฐานข้อมูลที่กำหนด โครงการนี้ได้รับการพัฒนาโดยการทำงานร่วมกันกับ บริษัท และชุมชนหลายแห่งที่อยู่เบื้องหลังเทคโนโลยีที่น่าตื่นเต้นเหล่านี้

30
วิธีแก้ปัญหา“ การดำเนินการปลั๊กอินไม่ครอบคลุมในการกำหนดค่าวงจรชีวิต” สำหรับ Spring Maven Builds Builds
ฉันพยายามที่จะทำงานร่วมกับข้อมูลฤดูใบไม้ผลิและ Neo4j ฉันเริ่มโดยพยายามทำตามคำแนะนำที่เชื่อมโยงกับเว็บไซต์หลัก โดยเฉพาะอย่างยิ่งฉันใช้ pom.xml จาก"Hello, World!" ไฟล์ตัวอย่าง นี่คือ snip จาก pom.xml ของฉันสำหรับปลั๊กอินที่ทำให้เกิดปัญหา ... <plugin> <!-- Required to resolve aspectj-enhanced class features --> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.0</version> <configuration> <outxml>true</outxml> <aspectLibraries> <aspectLibrary> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </aspectLibrary> <aspectLibrary> <groupId>org.springframework.data</groupId> <artifactId>spring-data-neo4j</artifactId> </aspectLibrary> </aspectLibraries> <source>1.6</source> <target>1.6</target> </configuration> <executions> <!-- ERROR HERE IN ECLIPSE SEE BELOW FOR …

5
ความแตกต่างระหว่างอินเตอร์เฟส CrudRepository และ JpaRepository ใน Spring Data JPA คืออะไร
ความแตกต่างระหว่างคืออะไรCrudRepositoryและJpaRepositoryอินเตอร์เฟซในฤดูใบไม้ผลิข้อมูล JPA ? เมื่อฉันเห็นตัวอย่างบนเว็บฉันเห็นพวกมันอยู่ที่นั่นใช้แทนกันได้ ความแตกต่างระหว่างพวกเขาคืออะไร? ทำไมคุณต้องการใช้อีกอันหนึ่ง?

7
วิธีใช้ OrderBy กับ findAll ใน Spring Data
ฉันกำลังใช้ข้อมูลฤดูใบไม้ผลิและดูเหมือน DAO ของฉัน public interface StudentDAO extends JpaRepository<StudentEntity, Integer> { public findAllOrderByIdAsc(); // I want to use some thing like this } ในโค้ดด้านบนบรรทัดแสดงความคิดเห็นแสดงเจตนาของฉัน spring Data สามารถใช้ฟังก์ชั่น inbuilt เพื่อใช้วิธีการดังกล่าวเพื่อค้นหาระเบียนทั้งหมดในบางคอลัมน์ด้วย ASC / DESC ได้หรือไม่?

30
Spring Boot - ไม่สามารถกำหนดคลาสไดร์เวอร์ฐานข้อมูลแบบฝังสำหรับประเภทฐานข้อมูล NONE
นี่เป็นข้อผิดพลาดที่เกิดขึ้นเมื่อพยายามเรียกใช้แอปพลิเคชันเว็บของฉัน: [INFO] WARNING: Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration$NonEmbeddedConfiguration.class]: Instantiation of bean failed; nested exception …

12
ไม่สามารถหา @SpringBootConfiguration เมื่อทำ JpaTest
ฉันใหม่กับเฟรมเวิร์ก (เพิ่งผ่านชั้นเรียน) และนี่เป็นครั้งแรกของฉันที่ใช้ Spring Boot ฉันพยายามทำการทดสอบ Junit แบบง่าย ๆ เพื่อดูว่า CrudRepositories ของฉันใช้งานได้จริงหรือไม่ ข้อผิดพลาดที่ฉันได้รับคือ: ไม่สามารถหา @SpringBootConfiguration ได้คุณต้องใช้ @ContextConfiguration หรือ @SpringBootTest (คลาส = ... ) ด้วยการทดสอบ java.lang.IllegalStateException ของคุณ Spring Boot ไม่ได้กำหนดค่าตัวเองใช่ไหม ชั้นทดสอบของฉัน: @RunWith(SpringRunner.class) @DataJpaTest @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class JpaTest { @Autowired private AccountRepository repository; @After public void clearDb(){ repository.deleteAll(); } @Test …

17
Spring Boot - กำลังโหลดข้อมูลเริ่มต้น
ฉันสงสัยว่าวิธีที่ดีที่สุดในการโหลดข้อมูลฐานข้อมูลเริ่มต้นก่อนที่แอปพลิเคชันจะเริ่มต้นอย่างไร สิ่งที่ฉันกำลังมองหาคือสิ่งที่จะเติมฐานข้อมูล H2 ของฉันด้วยข้อมูล ตัวอย่างเช่นฉันมีรูปแบบโดเมน "ผู้ใช้" ฉันสามารถเข้าถึงผู้ใช้โดยไปที่ / ผู้ใช้ แต่เริ่มแรกจะไม่มีผู้ใช้ในฐานข้อมูลดังนั้นฉันต้องสร้างพวกเขา อย่างไรก็ตามมีการเติมข้อมูลด้วยฐานข้อมูลโดยอัตโนมัติหรือไม่? ในขณะนี้ฉันมี Bean ที่ได้รับอินสแตนซ์โดยคอนเทนเนอร์และสร้างผู้ใช้สำหรับฉัน ตัวอย่าง: @Component public class DataLoader { private UserRepository userRepository; @Autowired public DataLoader(UserRepository userRepository) { this.userRepository = userRepository; LoadUsers(); } private void LoadUsers() { userRepository.save(new User("lala", "lala", "lala")); } } แต่ฉันสงสัยมากว่าเป็นวิธีที่ดีที่สุดในการทำมัน หรือมันคืออะไร?

3
Spring CrudRepository findByInventoryIds (รายการ <Long> inventoryIdList) - เทียบเท่ากับ IN clause
ใน Spring CrudRepository เรามีการสนับสนุน "ในอนุประโยค" สำหรับฟิลด์หรือไม่? สิ่งที่คล้ายกับต่อไปนี้คืออะไร? findByInventoryIds(List&lt;Long&gt; inventoryIdList) หากการสนับสนุนดังกล่าวไม่สามารถใช้งานได้จะมีการพิจารณาตัวเลือกอะไรบ้าง คิวรีการยิงสำหรับแต่ละ id อาจไม่เหมาะสม

11
วิธีเพิ่มวิธีกำหนดเองไปยัง Spring Data JPA
ฉันกำลังดู JPA ของ Spring Data พิจารณาตัวอย่างด้านล่างที่ฉันจะได้รับ crud และฟังก์ชั่นการค้นหาทั้งหมดทำงานตามค่าเริ่มต้นและถ้าฉันต้องการปรับแต่งการค้นหาแล้วก็สามารถทำได้อย่างง่ายดายในอินเทอร์เฟซของตัวเอง @Transactional(readOnly = true) public interface AccountRepository extends JpaRepository&lt;Account, Long&gt; { @Query("&lt;JPQ statement here&gt;") List&lt;Account&gt; findByCustomer(Customer customer); } ฉันต้องการที่จะรู้ว่าฉันจะเพิ่มวิธีการที่กำหนดเองที่สมบูรณ์แบบด้วยการใช้งานสำหรับ AccountRepository ข้างต้นได้อย่างไร เนื่องจากเป็นส่วนต่อประสานฉันไม่สามารถใช้วิธีการได้

7
เมื่อใช้ getOne และ findOne วิธี Spring Data JPA
ฉันมีกรณีใช้งานซึ่งมันเรียกสิ่งต่อไปนี้: @Override @Transactional(propagation=Propagation.REQUIRES_NEW) public UserControl getUserControlById(Integer id){ return this.userControlRepository.getOne(id); } สังเกตการแพร่กระจาย@Transactionalมี. REQUIRES_NEWและที่เก็บใช้getOne เมื่อฉันเรียกใช้แอพฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - no Session ... แต่ถ้าผมเปลี่ยนgetOne(id)โดยfindOne(id)ทั้งหมดทำงานได้ดี BTW ก่อนที่กรณีการใช้งานจะเรียกเมธอดgetUserControlByIdมันได้เรียกใช้เมธอดinsertUserControl แล้ว @Override @Transactional(propagation=Propagation.REQUIRES_NEW) public UserControl insertUserControl(UserControl userControl) { return this.userControlRepository.save(userControl); } ทั้งสองวิธีเป็นPropagation.REQUIRES_NEWเพราะฉันใช้การควบคุมการตรวจสอบอย่างง่าย ฉันใช้getOneวิธีการเพราะมันถูกกำหนดไว้ในส่วนต่อประสานJpaRepositoryและส่วนต่อประสานที่เก็บของฉันขยายจากตรงนั้นฉันทำงานกับ JPA แน่นอน JpaRepositoryอินเตอร์เฟซที่ยื่นออกมาจากCrudRepository วิธีการที่กำหนดไว้ในfindOne(id)CrudRepository คำถามของฉันคือ: ทำไมgetOne(id)วิธีการล้มเหลว? เมื่อใดที่ฉันควรใช้getOne(id)วิธีการ? ฉันกำลังทำงานกับที่เก็บอื่น …

7
วิธีดึงข้อมูลการเชื่อมโยง FetchType.LAZY กับ JPA และไฮเบอร์เนตใน Spring Controller
ฉันมีคลาสบุคคล: @Entity public class Person { @Id @GeneratedValue private Long id; @ManyToMany(fetch = FetchType.LAZY) private List&lt;Role&gt; roles; // etc } ด้วยความสัมพันธ์แบบหลายต่อหลายคนที่ขี้เกียจ ในตัวควบคุมของฉันฉันมี @Controller @RequestMapping("/person") public class PersonController { @Autowired PersonRepository personRepository; @RequestMapping("/get") public @ResponseBody Person getPerson() { Person person = personRepository.findOne(1L); return person; } } และ PersonRepository เป็นเพียงรหัสนี้เขียนตามคู่มือนี้ public interface …

8
จะทดสอบที่เก็บข้อมูล Spring ได้อย่างไร
ฉันต้องการพื้นที่เก็บข้อมูล (พูดUserRepository) ที่สร้างขึ้นด้วยความช่วยเหลือของ Spring Data ฉันยังใหม่กับ Spring-data (แต่ไม่ใช่ฤดูใบไม้ผลิ) และฉันใช้บทช่วยสอนนี้ ตัวเลือกของเทคโนโลยีสำหรับจัดการกับฐานข้อมูลคือ JPA 2.1 และ Hibernate ปัญหาคือฉันไม่รู้วิธีเขียนการทดสอบหน่วยสำหรับที่เก็บดังกล่าว ลองใช้create()วิธีการเช่น ในขณะที่ฉันกำลังทำการทดสอบก่อนฉันควรจะเขียนการทดสอบหน่วยสำหรับมัน - และนั่นคือสิ่งที่ฉันพบปัญหาสามประการ: ขั้นแรกฉันจะฉีดเลียนแบบEntityManagerการใช้งานUserRepositoryอินเทอร์เฟซที่ไม่มีอยู่ได้อย่างไร Spring Data จะสร้างการใช้งานตามอินเทอร์เฟซนี้: public interface UserRepository extends CrudRepository&lt;User, Long&gt; {} อย่างไรก็ตามฉันไม่รู้ว่าจะบังคับให้ใช้การEntityManagerจำลองและการล้อเลียนอื่น ๆ อย่างไร - ถ้าฉันเขียนการใช้งานด้วยตัวเองฉันอาจมีวิธีการตั้งค่าเพื่อEntityManagerให้ฉันใช้การจำลองสำหรับการทดสอบหน่วย (ในฐานะที่เป็นสำหรับการเชื่อมต่อฐานข้อมูลจริงฉันมีJpaConfigurationระดับกำกับด้วย@Configurationและ@EnableJpaRepositoriesที่โปรแกรมกำหนดถั่วDataSource, EntityManagerFactory, EntityManagerฯลฯ - แต่ที่เก็บควรจะทดสอบที่เป็นมิตรและอนุญาตให้มีการเอาชนะสิ่งเหล่านี้) ประการที่สองฉันควรทดสอบการโต้ตอบหรือไม่? มันยากสำหรับฉันที่จะเข้าใจว่าวิธีการใดEntityManagerและQueryควรจะเรียกว่าอะไร (คล้าย ๆ กันverify(entityManager).createNamedQuery(anyString()).getResultList();) เนื่องจากฉันไม่ใช่คนที่เขียนการนำไปใช้ ประการที่สามฉันควรจะทดสอบหน่วยวิธีการสร้างข้อมูลโดยสปริงตั้งแต่แรกหรือไม่? ดังที่ฉันทราบรหัสไลบรารีของบุคคลที่สามไม่ควรผ่านการทดสอบหน่วย - เฉพาะโค้ดที่นักพัฒนาเขียนขึ้นเองเท่านั้นที่ควรได้รับการทดสอบหน่วย …

17
Spring boot - ไม่ใช่ประเภทที่มีการจัดการ
ฉันใช้ Spring boot + JPA และมีปัญหาขณะเริ่มบริการ Caused by: java.lang.IllegalArgumentException: Not an managed type: class com.nervytech.dialer.domain.PhoneSettings at org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java:219) at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.&lt;init&gt;(JpaMetamodelEntityInformation.java:68) at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:89) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:69) at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:177) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:239) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:225) at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562) นี่คือไฟล์ Application.java @Configuration @ComponentScan @EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class }) @SpringBootApplication public …

8
setMaxResults สำหรับคำอธิบายประกอบ Spring-Data-JPA?
ฉันพยายามรวม Spring-Data-JPA เข้ากับโครงการของฉัน สิ่งหนึ่งที่ทำให้ฉันสับสนคือฉันจะบรรลุ setMaxResults (n) ด้วยคำอธิบายประกอบได้อย่างไร ตัวอย่างเช่นรหัสของฉัน: public interface UserRepository extends CrudRepository&lt;User , Long&gt; { @Query(value="From User u where u.otherObj = ?1 ") public User findByOhterObj(OtherObj otherObj); } ฉันต้องการคืนone (and only one)User จาก otherObj เท่านั้น แต่ฉันหาวิธีใส่คำอธิบายประกอบ maxResults ไม่ได้ ใครช่วยให้คำแนะนำฉันได้ไหม (mysql บ่น: com.mysql.jdbc.JDBC4PreparedStatement@5add5415: select user0_.id as id100_, user0_.created as created100_ …

2
spring.jpa.open-in-view = คุณสมบัติที่แท้จริงใน Spring Boot คืออะไร?
ฉันเห็นspring.jpa.open-in-view=trueคุณสมบัติในเอกสาร Spring Boot สำหรับการกำหนดค่า JPA เป็นtrueค่าเริ่มต้นสำหรับคุณสมบัตินี้หากไม่ได้ระบุไว้เลยหรือไม่; สิ่งนี้ทำอะไรได้บ้าง? ฉันไม่พบคำอธิบายที่ดีสำหรับมัน มันทำให้คุณใช้SessionFactoryแทนEntityManagerFactory? ถ้าใช่ฉันจะแจ้งให้ฉันใช้EntityManagerFactoryแทนได้อย่างไร ขอบคุณ!

9
ปิดใช้งานการกำหนดค่าอัตโนมัติที่เกี่ยวข้องกับฐานข้อมูลทั้งหมดใน Spring Boot
ฉันใช้ Spring Boot เพื่อพัฒนาแอปพลิเคชั่นสองตัวตัวหนึ่งทำหน้าที่เป็นเซิร์ฟเวอร์และอีกแอปหนึ่งเป็นแอปไคลเอนต์ อย่างไรก็ตามทั้งสองเป็นแอปเดียวกันที่ทำงานแตกต่างกันไปตามโปรไฟล์ที่ใช้งานอยู่ ฉันใช้คุณสมบัติการกำหนดค่าอัตโนมัติของ Spring Boot เพื่อกำหนดค่าแอปพลิเคชันของฉัน ฉันต้องการปิดการใช้งานฐานข้อมูลทั้งหมดที่เกี่ยวข้องกับการกำหนดค่าอัตโนมัติในแอปไคลเอนต์เนื่องจากไม่จำเป็นต้องเชื่อมต่อฐานข้อมูล แอปพลิเคชันไม่ควรพยายามสร้างการเชื่อมต่อกับฐานข้อมูลหรือพยายามใช้คุณสมบัติ Spring Data หรือ Hibernate การเปิดหรือปิดการกำหนดค่าฐานข้อมูลอัตโนมัติควรเป็นไปตามเงื่อนไขและขึ้นอยู่กับโปรไฟล์ที่ใช้งานอยู่ของแอป ฉันสามารถทำได้โดยการสร้างไฟล์ application.properties ที่แตกต่างกันสองไฟล์สำหรับโปรไฟล์ที่เกี่ยวข้องหรือไม่ ฉันพยายามเพิ่มสิ่งนี้ลงในไฟล์คุณสมบัติของฉัน spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration\ org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration\ org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration แต่แอปพลิเคชันยังคงพยายามเชื่อมต่อกับฐานข้อมูลเมื่อเริ่มต้น การยกเว้นเหล่านั้นเพียงพอสำหรับการบรรลุข้อกำหนดของฉันหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.