2016-07-20 2 views
0

내가 최대 절전 모드 주석을 사용하여 데이터 bean을 통해 MySQL의 테이블에 대한 제약 조건을 추가하려고 MySQL의 테이블에 제약 조건을 추가 할 수 없습니다 :를 사용하여 최대 절전 모드 주석 :

package databean; 

import javax.persistence.*; 

@Entity 
@Table(name = "ADMIN", 
     uniqueConstraints = { 
       @UniqueConstraint(columnNames = "userName"), 
       @UniqueConstraint(columnNames = "email") 
     }) 
public class AdminBean { 
     // Private fields 

     @Id @GeneratedValue 
     @Column(name = "adminId") 
     private int adminId; // PK 

     @Column(name = "userName") 
     private String userName; 

을 나는 또한 매핑이 개 XML 파일을 가지고있는 hibernate.cfg.xml 및 Admin.hbm.xml

1) 맵핑 자원 = "동면/Admin.hbm.xml"/

2)

,
<hibernate-mapping> 
    <class name="databean.AdminBean" table="ADMIN"> 
     <meta attribute="class-description"> 
     This class contains the admin detail. 
     </meta> 
     <id name="adminId" type="int" column="adminId"> 
     <generator class="native"/> 
     </id> 
     <property name="userName" column="userName" type="string"/> 
     <property name="firstName" column="firstName" type="string"/> 
     <property name="lastName" column="lastName" type="string"/> 
     <property name="email" column="email" type="string"/> 
     <property name="phone" column="phone" type="string"/> 
     <property name="password" column="password" type="string"/> 
     <property name="city" column="city" type="string"/> 
     <property name="zipCode" column="zipCode" type="string"/> 
    </class> 
</hibernate-mapping> 

내가 온라인에서 찾은 바에 따르면 : "지금까지 Hibernate가 POJO에서 데이터베이스 테이블로 또는 그 반대로 데이터를 변환하기 위해 XML 매핑 파일을 사용하는 방법을 보았습니다. Hibernate annotations는 XML 파일을 사용하지 않고 매핑을 정의하는 가장 새로운 방법이다. XML 매핑 메타 데이터에 추가로 또는 XML 매핑 메타 데이터를 대체하여 주석을 사용할 수 있습니다. Hibernate Annotations는 객체 및 관계형 테이블 매핑을위한 메타 데이터를 제공하는 강력한 방법이다. 모든 메타 데이터는 코드와 함께 POJO 자바 파일에 포함되어 있습니다. 개발 중에 테이블 구조와 POJO를 동시에 이해하는 데 도움이됩니다. "(http://www.tutorialspoint.com/hibernate/hibernate_annotations.htm)

XML 파일 매핑을 주석 처리하면 "알 수없는 엔티티 : databean.AdminBean"를 제외하고는. 지금도 데이터 bean을 찾을 수 없습니다

질문 :.

1)해서는 안 최대 절전 모드 주석과 데이터 bean XML의 매핑이없는 경우에도 작동 파일? (이제는 작동하지 않습니다 ...)

2) databean에 최대 절전 모드 주석이 없으면 XML 매핑 파일에 제약 조건을 직접 추가해야합니까?

3) MySQL 테이블에 제약 조건을 추가하는 가장 좋은 방법은 무엇입니까? 응용 프로그램을 실행할 때 모두 자동으로 만들어 지므로 먼저 mySQL에 수동으로 테이블을 작성하여 제약 조건을 추가하는 것이 좋지 않은 것 같습니다.

4) databean과 (아마도) xml 파일 모두에 제약 조건을 추가해야합니까?

업데이트 : XML 파일의 속성을 설정하려고 할 때

심지어, MySQL 데이터베이스는 여전히 중복 항목을 추가 할 수 있으며 테이블 "제약을 잡기"할 수없는 것 같다.

이제는 제약 조건을 추가하는 방법에 문제가 없을 수도 있지만, 다른 부분은 잘 작동 할 수 있지만 mySQL 테이블과 코드와의 "연결 해제"와 더 비슷합니다. 누구나 전에 비슷한 상황에 직면 해 있습니까?

답변

0

이유를 찾았습니다 : 제약 조건이 없을 때 이전 테이블을 삭제하지 않았습니다.이 제약 조건은 앱에서 자동으로 처음 만들어 졌을 때 추가되었습니다. 아무도 같은 실수를하지 않기를 바랍니다. :)