Tôi đã tìm câu trả lời cho điều này nhưng không thể tìm thấy bất kỳ câu hỏi nào cho cộng đồng rất thích hợp này!JPA nhiều đơn vị kiên trì cho dev/qa/giai đoạn/sản xuất
- Tôi có một ứng dụng java độc lập được triển khai trong nhiều môi trường: dev, qa, stage, production. Vì mỗi môi trường có nguồn dữ liệu/db riêng và có các tệp thuộc tính chi phối các thuộc tính khác nhau tùy thuộc vào môi trường mà ứng dụng đang chạy. Như vậy, trong persistence.xml của tôi, tôi đã định nghĩa một đơn vị persistence cho dev. Trong cùng một tệp, tôi cũng muốn xác định các đơn vị bền vững cho các môi trường khác. Khi làm như vậy, Eclipse (Indigo - mới nhất) than phiền như sau: "Nhiều đơn vị kiên trì được xác định - chỉ đơn vị lưu giữ đầu tiên sẽ được nhận diện". Tôi là giả định rằng những gì tôi đã làm là hợp pháp và đây là vấn đề của Eclipse .. bất kỳ ai cũng có thể xác nhận không? Ngoài ra, đây có phải là những gì thực hành tốt nhất sẽ ra lệnh cho thiết lập hiện tại của tôi?
- Tôi đã được giả định rằng bất kỳ bean thực thể nào được đánh dấu bằng chú thích @Entity sẽ tự động được chọn mà không phải xác định rõ ràng nó trong tệp persistence.xml như sau:
<class>com.mycompany.model.MyEntityBean</class>
. Nếu tôi bỏ qua sự bao gồm rõ ràng của lớp thực thể trong tệp, bean thực thể - mặc dù được chú thích - ném một lỗi: "Lớp" com.mycompany.model.MyEntityBean "được ánh xạ, nhưng không được bao gồm trong bất kỳ đơn vị nào tồn tại" Những gì tôi đã giả định sai? - Câu hỏi cuối cùng của tôi liên quan đến thông tin đăng nhập db: cách tốt nhất là đặt thông tin đăng nhập db của tôi vào tệp persistence.xml trong văn bản thuần túy? Có bất kỳ lựa chọn thay thế an toàn hơn cho điều này?
Cảm ơn cộng đồng!
p.s - Tôi đang sử dụng EclipseLink làm nhà cung cấp JPA mà không phải là vấn đề?
Dưới đây là một ví dụ về persistence.xml tôi
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="Development">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.model.MyEntityBean</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" />
<property name="javax.persistence.jdbc.password" value="xxxxxx" />
<property name="javax.persistence.jdbc.user" value="xxxxxxxx" />
</properties>
</persistence-unit>
<persistence-unit name="QA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.model.MyEntityBean</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" />
<property name="javax.persistence.jdbc.password" value="xxxxxx" />
<property name="javax.persistence.jdbc.user" value="xxxxxxxx" />
</properties>
</persistence-unit>
</persistence>
Bạn có thể thêm nội dung persistence.xml của mình không, nó sẽ giúp mọi người hiểu rõ hơn. –
Xin chào Nayan, tôi đã thêm một chút về sự cám ơn persistence.xml của mình! – ustad