Table of Contents
개체 한정자의 데이터베이스 이름 구성 요소는 현재 데이터베이스의 이름이어야 합니다
원인
MS-SQL 의 제한조치로 디비 커넥션을 한 데이타베이스만 접속가능하게 제한조치가 걸려있습니다.
해결책
url: jdbc:sqlserver://XXX.XXX.XXX.XXX;databaseName=디비명
접근하려는 데이타베이스의 명을 동일하게 맞춰주어야 합니다.
여러개의 데이타베이스에 접근하려면,
물리적으로는 하나의 데이타베이스 이더라도,
여러개의 데이타소스를 만들어야 합니다.
해결책 02
JDBC URL 상의 데이타베이스를 master 로 설정한다.
엔터티에 catalog 를 지정해 준다.
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "tbl_orderMaster", catalog = "database_order.dbo")
public class OrderMaster implements Persistable<Integer> {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idx")
private int idx;
// ......
}
nativeQuery 를 이용해 프로시저도 호출할 수 있다.
@Repository
public interface OrderMasterRepository extends JpaRepository<OrderMaster, Integer> {
Optional<OrderMaster> findByOrderserial(String orderserial);
// 대괄호 앞뒤에 공백문자가 있어야 한다.
@Query(value = "{ CALL database_order.dbo.usp_Ten_Order_GetOrderMasterListJpa(:pageNo, :pageSize, :userid, :orderserial) }", nativeQuery = true)
List<OrderMaster> GetOrderMasterList(
@Param("pageNo") Integer pageNo,
@Param("pageSize") Integer pageSize,
@Param("userid") String userid,
@Param("orderserial") String orderserial);
}