bonjour à tous,

j'ai un petit problème avec le pluggin hbm2ddl. J'ai une entity "Indicateur" qui représente une vue dans ma DB. J'utilise hbm2ddl pour générer mon sql script de mes tables mais pas pour mes vues... donc j'aimerai faire un skip de cet entity lorsque je lance la génération du script sql. est-ce que quelqu'un aurait une idée comment m'y prendre ?

Pour info voici mon persistence.xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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="CTAPersistenceUnit" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/CTADatasource</jta-data-source>
        <class>be.fgov.famhp.cta8.data.entity.Task</class>
        <class>be.fgov.famhp.cta8.data.entity.DomainObject</class>
        <class>be.fgov.famhp.cta8.data.entity.Dossier</class>
        <class>be.fgov.famhp.cta8.data.view.Indicateur</class>
        <class>be.fgov.famhp.cta8.data.entity.User</class>
        <class>be.fgov.famhp.cta8.data.entity.Department</class>
        <class>be.fgov.famhp.cta8.data.entity.Payment</class>
        <validation-mode>NONE</validation-mode>
        <properties>
            <property name="jboss.entity.manager.factory.jndi.name" value="MyEntityManagerFactory"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.cache.use_second_level_cache" value="false"/>
            <property name="hibernate.id.new_generator_mappings" value="true"/>
        </properties>
    </persistence-unit>
 
</persistence>

et la partie de mon pom.xml qui utilise le pluggin hbm2ddl :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<profile>
            <id>GENERATE-SQL-SCRIPT</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>prepgensqlscript</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
 
                                    <tasks>
                                        <copy file="../CTA8Vaadin/src/main/resources/META-INF/persistence.xml"
                                              tofile="src/main/resources/META-INF/persistence.xml"/>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>hibernate3-maven-plugin</artifactId>
                        <version>2.2</version>
                        <executions>
                            <execution>
                                <phase>validate</phase>
                                <goals>
                                    <goal>hbm2ddl</goal>
                                </goals>
 
                            </execution>
 
                        </executions>
                        <configuration>
                            <components>
                                <component>
                                    <name>hbm2ddl</name>
                                    <implementation>jpaconfiguration</implementation>
                                </component>
                            </components>
 
                            <componentProperties>
                                <persistenceunit>CTAPersistenceUnit</persistenceunit>
                                <outputfilename>../../../src/main/resources/${sql.ddl.file.name}</outputfilename>
                                <drop>true</drop>
                                <create>true</create>
                                <export>false</export>
                                <format>true</format>
                            </componentProperties>
                        </configuration>
                        <dependencies>
                            <dependency>
                                <groupId>org.hibernate</groupId>
                                <artifactId>hibernate-core</artifactId>
                                <version>${hibernate.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.hibernate</groupId>
                                <artifactId>hibernate-entitymanager</artifactId>
                                <version>${hibernate.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
et pour finir mon entity :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
@Entity
@Table(name = "INDICATEUR_VIEW")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class Indicateur implements Serializable {
 
    @Id
    private Long id;
 
    @Column(name = "NAME1")
    private String applicantName;
 
    @Column(name = "INCOMING_DATE")
    private Date incomingDate;
 
    @Column(name = "INDICATEUR_NUMBER")
    private String indicateurNumber;
 
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public String getApplicantName() {
        return applicantName;
    }
 
    public void setApplicantName(String applicantName) {
        this.applicantName = applicantName;
    }
 
    public Date getIncomingDate() {
        return incomingDate;
    }
 
    public void setIncomingDate(Date incomingDate) {
        this.incomingDate = incomingDate;
    }
 
    public String getIndicateurNumber() {
        return indicateurNumber;
    }
 
    public void setIndicateurNumber(String indicateurNumber) {
        this.indicateurNumber = indicateurNumber;
    }
}

Merci d'avance