2016-12-08 2 views
0

내 상황에 고유 한 점은 ID를 임의로 할당 할 수 없으므로 인스턴스 내에서 값을 설정한다는 것입니다. 모델러를 사용하여 엔티티의 여러 인스턴스를 만들었습니다. 다음은 생성 된 XML은 다음과 같습니다인스턴스의 ID를 설정할 수 없습니다.

예상대로 작동하지 않는 2 가지가 있습니다
<cf:entity name="Test4" namespace="Amikids.TimeTracking" categoryPath="/Amikids.TimeTracking"> 
    <cf:property name="Id" key="true" typeName="int" /> 
    <cf:property name="Name" /> 
    <cf:instance> 
     <cf:instanceValue name="Id">10</cf:instanceValue> 
     <cf:instanceValue name="Name">Test 1</cf:instanceValue> 
    </cf:instance> 
    <cf:instance> 
     <cf:instanceValue name="Id">20</cf:instanceValue> 
     <cf:instanceValue name="Name">Test 2</cf:instanceValue> 
    </cf:instance> 
    <cf:instance> 
     <cf:instanceValue name="Id">30</cf:instanceValue> 
     <cf:instanceValue name="Name">Test 3</cf:instanceValue> 
    </cf:instance> 
    </cf:entity> 

:

  1. 레코드 모델/XML에 지정하신 ID를 사용하지 않는 삽입이. 대신 그들은 점진적으로 1부터 시작 만들어진 :

ID Name 
 
1 Test 1 
 
2 Test 2 
 
3 Test 3

(아래 코드 조각에 표시되는 경우에만 그렇게 모든 기록이 한 줄에 표시 내 목록 포맷에서 StackOverflow의 방지)
  1. 두 번째 모델을 만들 때 중복 레코드가 삽입됩니다.

ID Name 
 
    1 Test 1 
 
    2 Test 2 
 
    3 Test 3 
 
    4 Test 1 
 
    5 Test 2 
 
    6 Test 3

+0

Id 속성은 데이터베이스의 ID 열로 변환됩니다. 따라서 Id 열의 값을 명시 적으로 설정할 수는 없습니다. Id 열의 값을 설정하려면 모델에서'persistenceIdentity = "false"'를 설정해야합니다. – meziantou

답변

0

(아래는 그래서 모든 기록이 한 줄에 표시 내 목록 포맷에서 StackOverflow의를 방지하기 위해 코드에 표시됩니다) 비록의 ID를 지정 인스턴스가 작동하지 않는 것처럼 보입니다. 간단한 작업으로 코드를 사용하여 레코드를 만들었 기 때문에 ID를 지정할 수있었습니다. 이것은 다음 코드 스 니펫으로 확인되었습니다.

  Amikids.TimeTracking.Test4 test4 = new Amikids.TimeTracking.Test4(); 
     test4.Id = 100; 
     test4.Name = "Test 100"; 
     test4.Save(); 

     test4 = new Amikids.TimeTracking.Test4(); 
     test4.Id = 200; 
     test4.Name = "Test 200"; 
     test4.Save();